๐ก 1. StringBuilder ์ฌ์ฉํ๋ ์ด์
๊ธฐ์กด String ํด๋์ค์ ํ๊ณ
String ํด๋์ค๋ ํ๋ฒ ์์ฑ๋๋ฉด ๋ฌธ์์ด์ด ๋ณ๊ฒฝ๋์ง ์์ผ๋ฏ๋ก ๋ถ๋ณํ ์ฑ์ง์ ๊ฐ์ง๊ณ ์๋ค.
๋ฐ๋ผ์ ๊ธฐ์กด ๋ฌธ์์ด์ ์๋ก์ด ๋ฌธ์์ด์ ์ถ๊ฐํ๊ณ ์ ํ๋ ๊ฒฝ์ฐ,
๋ฉ๋ชจ๋ฆฌ์์ ๋ฌธ์์ด์ด ์ถ๊ฐ๋๋๊ฒ์ด ์๋๋ผ, ์๋ก์ด ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ ๋น๋์ด ๋ฌธ์์ด์ด ์์ฑ๋๋ค.
๋ฐ๋ผ์ ๋ฌธ์์ด์ ๋ณ๊ฒฝ์ด ๋น๋ฒํ ๊ฒฝ์ฐ StringBuilder ๋ฅผ ํ์ฉํด์ผ ํ๋ค.
์๋์ ๊ฐ์ด String sb="tesrStr";๋ก ์ ์ธํ๊ณ sb=sb.concat("12");๋ฅผ ์ํํ ๊ฒฝ์ฐ, sb ๋ฌธ์์ด์ ์ ์ฃผ์๊ฐ ํ ๋น๋๋ค.
๋ฌธ์์ด์ ๋ณ๊ฒฝํ ๋๋ง๋ค ์๋ก์ด ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ ๋น๋๋ ๊ฒ์ ์์๋ญ๋น๊ฐ ์ผ์ด๋๊ธฐ ๋๋ฌธ์
StringBuilder๋ฅผ ํ์ฉํด์ผ ํ๋ค.
๐ก 2. StringBuilder
StringBuilder ํด๋์ค๋ ๋ฌธ์์ด์ ๋ณ๊ฒฝํ๊ฑฐ๋ ์ด์ด๋ถ์ด๋ ๊ฒฝ์ฐ ์ถ๊ฐ ๋ฉ๋ชจ๋ฆฌ ์์ฑ ์์ด ๊ธฐ์กด ๋ฌธ์์ด์ด ํ์ฅ๋๋ ํด๋์ค์ด๋ค.
String๊ณผ ๋ค๋ฅด๊ฒ ๋ฌธ์์ด์ด ๋น๋ฒํ๊ฒ ๋ณ๊ฒฝ๋ ๋ ์ฌ์ฉํ๋ฉด ์ฑ๋ฅ์ด ์ข๋ค.
StringBuilderํด๋์ค๋ ๋ฉํฐ์ฐ๋ ๋ ํ๊ฒฝ์์ ๋ฌธ์์ด์ ์์ ํ ๋ณ๊ฒฝ์ ๋ณด์ฅํด์ฃผ์ง ์๋ ํน์ง์ด ์๋ค.
์ฆ, ์ฌ๋ฌ ์ฐ๋ ๋๊ฐ ๋ฌธ์์ด(๊ณต์ ์์)์ ๋์์ ์ ๊ทผ/๋ณ๊ฒฝ์ด ์ด๋ฃจ์ด์ง๋ฉด ์ํ๊ฒฐ๊ณผ๊ฐ ์ฌ๋ฐ๋ฅด์ง ์์ ๊ฒ์ ๋งํ๋ค.
๋ฌธ์์ด ๋ณ๊ฒฝ ์ ๋ฉ๋ชจ๋ฆฌ ์ํ
stringBuilder ํด๋์ค๋ฅผ ์์ฑํ๊ณ ์ฌ๊ธฐ์ "test"๋ฌธ์์ด ์์ฑ
๊ทธ ํ, append() ๋ฉ์๋๋ฅผ ํตํด "1"๊ณผ "2"๋ฌธ์์ด์ ์ถ๊ฐ
์ด ๋, append() ๋ฉ์๋๋ฅผ ํตํด 1๊ณผ 2๊ฐ ์๋ก ์์ฑ๋๋๊ฒ์ด ์๋ ํ๋์ ๋ฉ๋ชจ๋ฆฌ์ ๋ฌธ์์ด์ด ๊ณ์ ์ด์ด๋ถ์ฌ์ ธ ๋ณ๊ฒฝ๋๋ค.
์ฝ๋ ์์
- StringBuilder sb ์ ์ธ
- ๋ฌธ์์ด sb๊ฐ ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ์ถ๋ ฅ
- ๋ฌธ์์ด ์ถ๊ฐ
- ๋ฌธ์์ด sb๊ฐ ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ์ถ๋ ฅ
- StringBuilder ํด๋์ค๋ฅผ String ํด๋์ค๋ก ๋ณํ
StringBuilder sb=new StringBuilder("test");
System.out.print(sb+""+System.identityHashCode(sb)); // ๋ฌธ์์ด๊ณผ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ์ถ๋ ฅ
sb.append("2");
sb.append("3");
System.out.print(sb+""+System.identityHashCode(sb)); // ๋ฌธ์์ด๊ณผ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ์ถ๋ ฅ
String temp=sb.toString();
์คํ ๊ฒฐ๊ณผ
๋ฌธ์์ด "test"์ "1๊ณผ" "2"๋ฅผ ์ถ๊ฐํ์ฌ๋ ๋ฌธ์์ด ์ฃผ์๊ฐ ๋ณ๊ฒฝ๋์ง ์๋๋ค.
๐ก 3. StringBuilder ๋ฉ์๋
[ String ํด๋์ค์ ๋์ผ ๋ฉ์๋ ]
- charAt()
- indexOf() / lastIndexOf()
- length()
- replace()
- substring()
- toString()
append() : ๋ฌธ์์ด ์ถ๊ฐ
StringBuilder sb=new StringBuilder("Hello");
sb.append(" world)";
System.out.print(sb); // "Hello World"
capacity()
- Stringํด๋์ค์ ๋ค๋ฅด๊ฒ char[]๋ฐฐ์ด ์ฌ์ด์ฆ๋ฅผ ์ฌ์ ์๊ฒ ์ก์๋
- ํ์ฌ char[] ๋ฐฐ์ด์ด ๊ฐ์ง ์ฌ์ด์ฆ ์ ๋ณด๋ฅผ ๋ฐํ
- length()๋ ์ค์ ๋ฐ์ดํฐ๊ฐ ๋ค์ด์๋ ๋ฌธ์์ด ์์ฒด์ ๊ธธ์ด๊ณ , capacity()๋ ํ์ฌ ๋ฐฐ์ด size
- append() ๋ฑ ๋ฌธ์์ด ์กฐ์ ํ ๋ ๋ฐฐ์ด ์ฌ์ด์ฆ๊ฐ ์๋์ผ๋ก ๋ณ๊ฒฝ๋จ
StringBuilder sb = new StringBuilder("Hello");
System.out.println(sb.length()); // 5
System.out.println(sb.capacity()); // 21
sb.append(" World");
System.out.println(sb); // "Hello World"
System.out.println(sb.length()); // 11
System.out.println(sb.capacity()); // 21
sb.append(" Hi everybody!!!!");
System.out.println(sb); // Hello World Hi everybody!!!!
System.out.println(sb.length()); // 28
System.out.println(sb.capacity()); // 44
delete()
- ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ๋ฐ์ ์ธ๋ฑ์ค ์ฌ์ด์ ๋ฌธ์์ด ์ ๊ฑฐ
- parameter : ์ธ๋ฑ์ค ์์์ , ์ธ๋ฑ์ค ๋์ + 1
- ๋ฌธ์์ด์์ ์์๊ณผ ๋์ ํญ์ "์์<=๋ฒ์<๋" ํํ
StringBuilder sb=new StrinbBuilder("Hello");
sb.append(" World");
System.out.print(sb); // "Hello World"
sb.delete(6,9);
System.out.print(sb); // "Hello ld"
deleteCharAt()
- ํน์ ์ธ๋ฑ์ค์ ํ ๋ฌธ์๋ง ์ญ์
- delete() ๋ฉ์๋์์ ๋ฒ์๋ฅผ ํ ๊ธ์๋ง ์ก๋๊ฒ๊ณผ ๋์ผํ ํจ๊ณผ
StringBuilder sb=new StringBuilder("Hello");
sb.append(" World");
System.out.print(sb); // "Hello"
//sb.delete(6,7)๊ณผ ๊ฐ์
sb.deleteCharAt(6);
System.out.print(sb); // "Hello orld"
insert()
- ํน์ ์์น์ ๋ฌธ์์ด ์ฝ์
- ๋งค๊ฐ๋ณ์๋ก ๋ฐ์ ์ธ๋ฑ์ค ์์น๋ถํฐ ๋ฌธ์์ด์ ์ฝ์
StringBuilder sb=new StrinbBuilder("He World");
sb.inser(2, "llo");
System.out.print(sb); // "Hello World"
sb.insert(5,55);
System.out.print(sb); // "Hello55 World"
reverse()
- ๋ฌธ์์ด์ ๊ฑฐ๊พธ๋ก ๋ค์ง์ด์ค
StringBuilder sb=new StringBuilder("Hello World");
sb.reverse();
System.out.print(sb); // "dlroW olleH"
setCharAt()
- ํน์ ์์น์ ๋ฌธ์ ๋ณ๊ฒฝ
- insert()๊ฐ ์๋ณธ ๋ฌธ์์ด ์ค๊ฐ์ ์ฝ์ ์ด๋ผ๋ฉด setCharAt()์ ํด๋น ์์น์ ๋ฌธ์๋ฅผ ๋ณ๊ฒฝ
StringBuilder sb=new StringBuilder("Hello World");
sb.setCharAt(0,'h');
System.out.print(sb); // "hello World"
'๐ ์ฝ๋ฉํ ์คํธ > JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JAVA] List : LinkedList (0) | 2022.10.26 |
---|---|
[JAVA] List : ArrayList (0) | 2022.10.26 |
[JAVA] ๋ฌธ๋ฒ : ํ๋ณํ ์ ๋ฆฌ (0) | 2022.10.26 |
[JAVA] String method (0) | 2022.10.26 |
[JAVA] LRU ( ์บ์ ) (0) | 2022.10.19 |