Item 63. String Concat

ė¬øģžģ—“ ģ—°ź²°ģ€ ėŠė¦¬ė‹ˆ ģ£¼ģ˜ķ•“ģ„œ ģ‚¬ģš©ķ•˜ė¼

+ģ„ ģ‚¬ģš©ķ•˜ģ—¬ ķŽøė¦¬ķ•˜ź²Œ ė¬øģžģ—“ ģ—°ź²° ģ—°ģ‚°ģ„ ķ•  ģˆ˜ ģžˆėŠ”ė°, ģ“ ģ—°ģ‚° ģžģ²“ź°€ ķ° ģ„±ėŠ„ ģ €ķ•˜ė„¼ ź°€ģ øģ˜¬ ģˆ˜ ģžˆė‹¤. ė¬øģžģ—“ģ€ ė¶ˆė³€ ź°ģ²“ģ“źø° ė•Œė¬øģ— ė‘ ė¬øģžģ—“ģ„ ģ—°ź²°ķ•  ź²½ģš° ė‘ ė¬øģžģ—“ģ„ ė³µģ‚¬ķ•œ ķ›„ ģƒˆė”œģš“ ė¬øģžģ—“ģ„ ģƒģ„±ķ•˜źø° ė•Œė¬øģ— nź°œģ˜ ė¬øģžģ—“ģ„ ģ—°ź²°ķ•  ź²½ģš° n^2ģ˜ ģ‹œź°„ģ“ ź±øė¦°ė‹¤.

StringBuilder ģ‚¬ģš©

ģœ„ģ™€ ź°™ģ€ ė¬øģ œė„¼ ķ•“ź²°ķ•˜źø° ģœ„ķ•“ StringBuilderė„¼ ģ‚¬ģš©ķ•  ģˆ˜ ģžˆė‹¤.

class Example {
    public String statementWithString() {
        String result = "";
        for (int i = 0; i < numItems(); i++) {
            result += lineForItem(i);
        }
        return result;
    }
    
    public String statementWithStringBuilder() {
        StringBuilder sb = new StringBuilder(numItems() * LINE_WIDTH); // ģ ģ ˆķ•œ ķ¬źø°ė”œ ģ“ˆźø°ķ™”ķ•˜ė©“ ė” ė¹ ė„“ė‹¤
        for (int i = 0; i < numItems(); i++) {
            sb.append(lineForItem(i));
        }
        return sb.toString();
    }
}

ģ‚¬ģš©ķ•˜ė”ė¼ė„ ķ¬ź²Œ ė¬øģ œź°€ ģ—†ėŠ” ź²½ģš°

ģœ„ ģ„¤ėŖ…ź³¼ ź°™ģ•„ ė¬øģžģ—“ ģ—°ź²° ģ—°ģ‚°ģ„ ģ‚¬ģš©ķ•˜ė©“ ģ„±ėŠ„ ģ €ķ•˜ź°€ ė°œģƒķ•˜ģ§€ė§Œ ģ•„ėž˜ģ™€ ź°™ģ€ ź²½ģš°ėŠ” ģ‚¬ģš©ķ•˜ė”ė¼ė„ ķ° ė¬øģ œź°€ ģ—†ė‹¤.

  • ķ•œ ģ¤„ģ§œė¦¬ ģ¶œė „ź°’

  • ģž‘ź³ ķ¬źø°ź°€ ź³ ģ •ėœ ź°ģ²“ģ˜ ė¬øģžģ—“ ķ‘œķ˜„

Last updated