์ฝ๊ฒ ๋งํด StringBuffer๋ ๋ฌธ์์ด์ ์ถ๊ฐํ๊ฑฐ๋ ๋ณ๊ฒฝ ํ ๋ ์ฃผ๋ก ์ฌ์ฉํ๋ ์๋ฃํ์ ๋๋ค.
Stirng ๋ฌธ์์ด์ "+", concat()์ผ๋ก ๊ฒฐํฉํ๋ฉด, ๋ด์ฉ์ด ํฉ์ณ์ง ์๋ก์ด String ์ธ์คํด์ค๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ํ์ง๋ง String์ ๋ถ๋ณ(Immutable) ํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ฌธ์์ด์ ๋ง์ด ๊ฒฐํฉํ๋ฉด ๊ฒฐํฉํ ์๋ก ๊ณต๊ฐ์ ๋ญ๋น ๋ฟ๋ง ์๋๋ผ ์๋ ๋ํ ๋งค์ฐ ๋๋ ค์ง๊ฒ ๋ฉ๋๋ค.
์์ ์ฌ์ง์ ๋ณด๋ฉด String.concat์ ๋ง์ด ์ฌ์ฉํ๋ฉด ํ ์๋ก ์๋๊ฐ ๋๋ ค์ง๋ ๊ฒ์ ํ์ธ ํ ์ ์์ต๋๋ค.
ํ์ง๋ง StringBuffer๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฌธ์์ด์ ๋ฐ๋ก ์ถ๊ฐํ ์ ์์ผ๋ฏ๋ก, ๊ณต๊ฐ์ ๋ญ๋น๋ ์์ผ๋ฉฐ ์๋๋ String์ ๋นํด ๋งค์ฐ ๋นจ๋ผ์ง๋๋ค.
๊ทธ ์ด์ ๋ StringBuffer๋ Mutableํ๊ธฐ ๋๋ฌธ์ ๋๋ค..
- Mutable class(๊ฐ๋ณ ํด๋์ค) : ๊ฐ์ ๋ณ๊ฒฝํ ์๋ ์๊ณ , ์ถ๊ฐํ ์๋ ์๋ ํด๋์ค๋ฅผ ๋ง ํฉ๋๋ค.
- Immutable class(๋ถ๋ณ ํด๋์ค) : ๊ฐ์ ์ฝ๊ธฐ๋ง ํ ์ ์๊ณ , ๋ณ๊ฒฝํ ์๋ ์๋ ํด๋์ค๋ฅผ ๋ง ํฉ๋๋ค.
๊ทธ๊ฑด ์ํฉ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค! StringBuffer ์๋ฃํ์ String์ ๋นํด ๋ฌด๊ฑฐ์ด ํธ์ ์ํฉ๋๋ค. new StringBuffer();
๋ก ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๊ฒ์ด String์ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋๋ ๋ง๊ณ ์๋๋ ๋๋ฆฌ๊ธฐ ๋๋ฌธ์ ๋ฌธ์์ด ์ถ๊ฐ๋ ๋ณ๊ฒฝ๋ฑ์ ์์
์ด ๋ง์ผ๋ฉด StringBuffer๋ฅผ, ๊ทธ๋ ์ง ์๋ค๋ฉด String์ ์ฌ์ฉํ๋๊ฒ ์ ๋ฆฌํฉ๋๋ค!
public class Test {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
sb.append("hello");
sb.append(" ");
sb.append("welcome to java");
System.out.println(sb.toString());
}
}
๊ฒฐ๊ณผ๊ฐ์ ๋ค์๊ณผ ๊ฐ์ด ๋์ต๋๋ค.
hello welcome to java
StringBuffer์ append๋ผ๋ ๋ฉ์๋๋ฅผ ์ด์ฉํ์ฌ ๊ณ์ํด์ ๋ฌธ์์ด์ ์ถ๊ฐํด ๋๊ฐ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์์ ์ ๊ฐ์ด toString()์ ์ฌ์ฉํ๋ฉด String ์๋ฃํ์ผ๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
insert ๋ฉ์๋๋ ํน์ ์์น์ ์ํ๋ ๋ฌธ์์ด์ ์ฝ์ ํ ์ ์์ต๋๋ค.
public class Test {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
sb.append("welcome to java");
sb.insert(0, "hello");
System.out.println(sb.toString());
}
}
๊ฒฐ๊ณผ๊ฐ์ ๋ค์๊ณผ ๊ฐ์ด ๋์ต๋๋ค.
hello welcome to java
sb.insert(์ธ๋ฑ์ค, ๊ฐ) 0 ๋ฒ์งธ ์์น์ "hello"๋ผ๋ ๋ฌธ์์ด์ ์ฝ์
!
substring ๋ฉ์๋๋ String์ substring ๋ฉ์๋์ ์ฌ์ฉ๋ฒ์ด ๋์ผํฉ๋๋ค.
public class Test {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
sb.append("Hello welcome to java");
System.out.println(sb.substring(0, 4));
}
}
๊ฒฐ๊ณผ๊ฐ์ ๋ค์๊ณผ ๊ฐ์ด ๋์ต๋๋ค.
Hell
substring(์์์์น, ๋์์น)์ ๊ฐ์ด ์ฌ์ฉํ๋ฉด StringBuffer ๊ฐ์ฒด์ ์์์์น์์ ๋์์น๊น์ง์ ๋ฌธ์๋ฅผ ๋ฝ์๋ด๊ฒ ๋ฉ๋๋ค.
Method | ์ค๋ช |
---|---|
int capacity() | ํ์ฌ ๋ฒํผ ํฌ๊ธฐ๋ฅผ ๋ฐํํจ. |
StringBuffer delete(int start, int end) | ์ ๋ฌ๋ ์ธ๋ฑ์ค์ ํด๋นํ๋ ๋ถ๋ถ ๋ฌธ์์ด์ ํด๋น ๋ฌธ์์ด์์ ์ ๊ฑฐํจ. |
StringBuffer deleteCharAt(int index) | ์ ๋ฌ๋ ์ธ๋ฑ์ค์ ํด๋นํ๋ ๋ฌธ์๋ฅผ ํด๋น ๋ฌธ์์ด์์ ์ ๊ฑฐํจ. |
StringBuffer reverse() | ํด๋น ๋ฌธ์์ด์ ์ธ๋ฑ์ค๋ฅผ ์ญ์์ผ๋ก ์ฌ๋ฐฐ์ดํจ. |