String์ ๋ถ๋ณ(immutable) ๊ฐ์ฒด์ด๋ค. ์ผ๋ก๋ก String str1 = "์ฌ๊ณผ";
์ String str2 = "๋ธ๊ธฐ";
๋ผ๋ 2 ๊ฐ์ ๊ฐ์ฒด๊ฐ ์์ ๋, str1 + str2;
์ ๊ฐ์ ์ฐ์ฐ์ ํ๊ฒ ๋๋ฉด ์๋ก์ด ๋ฌธ์์ด์ด ๋ ์์ฑ๋๊ณ ์ด์ ์ ๋ฌธ์์ด์ ๊ฐ๋น์ง ์ฝ๋ ํฐ๋ก ๋ค์ด๊ฐ๋ค. ๋ง์ ๋ฌธ์์ด์ ์ฐ๊ฒฐํ๋ฉด ๊ทธ๋งํผ ๋ง์ ์ค๊ฐ ๋ฌธ์์ด ๊ฐ์ฒด๊ฐ ์์ฑ๋๋ค. ๋ฐ๋ผ์ ์ด๋ฌํ ์ฐ์ฐ์ด ๋ง์์ง๋ค๋ฉด ์ฑ๋ฅ์ ์ผ๋ก ์ข์ง ์๋ค.
๊ทธ๋์ StringBuilder๋ฅผ ์ฌ์ฉํ๋ค. StringBuilder๋ String๊ณผ ๋ฌธ์์ด์ ๋ํ ๋ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์๋๋ผ ๊ธฐ์กด์ ๋ฐ์ดํฐ์ ๋ํ๋ ๋ฐฉ์์ด๋ค. ๋ฐ๋ผ์ ์๋๋ ๋น ๋ฅด๋ฉฐ ์๋์ ์ผ๋ก ๋ถํ๊ฐ ์ ๋ค. ๊ธด ๋ฌธ์์ด์ ๋ํ๋ ๊ฒฝ์ฐ์๋ StringBuilder๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
public class Main
{
public static void main(String[] args)
{
StringBuilder sb = new StringBuilder(); /* ๋ฌธ์์ด์ ์ธ์๋ก ๋ฐ๋ก ๋ฃ์ด๋ ๋๋ค. */
sb.append("์ฌ๊ณผ, ").append("๋ธ๊ธฐ");
String str = sb.toString();
System.out.println(sb.toString()); /* ์ฌ๊ณผ, ๋ธ๊ธฐ */
System.out.println(str); /* ์ฌ๊ณผ, ๋ธ๊ธฐ */
}
}
StringBuilder ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ , append()๋ก ์ฐ๊ฒฐํ๋ ค๋ ๋ฌธ์์ด์ ๋ฃ๋๋ค. ์ถ๋ ฅํ ๋๋, String ๋ณ์์ ๋ฃ๊ณ ์ ํ ๋๋ toString()์ ๋ถ์ฌ ์ฃผ์ด์ผ ํ๋ค.
public class Main
{
public static void main(String[] args)
{
StringBuilder sb = new StringBuilder();
sb.append("์ฌ๊ณผ ").append("๋ธ๊ธฐ ").append("ํ ๋งํ ").append("์ต๋ ").append("๋ง๊ณ !!");
System.out.println(sb.toString()); /* ์ฌ๊ณผ ๋ธ๊ธฐ ํ ๋งํ ์ต๋ ๋ง๊ณ !! */
sb.insert(3, "๋ฐ๋๋ ");
System.out.println(sb.toString()); /* ์ฌ๊ณผ ๋ฐ๋๋ ๋ธ๊ธฐ ํ ๋งํ ์ต๋ ๋ง๊ณ !! */
sb.delete(0, 3);
System.out.println(sb.toString()); /* ๋ฐ๋๋ ๋ธ๊ธฐ ํ ๋งํ ์ต๋ ๋ง๊ณ !! */
System.out.println(sb.indexOf("์ต๋")); /* 11 */
System.out.println(sb.substring(11, 13)); /* ์ต๋ */
System.out.println(sb.length()); /* 18 */
System.out.println(sb.replace(11, 13, "์ฒด๋ฆฌ")); /* ๋ฐ๋๋ ๋ธ๊ธฐ ํ ๋งํ ์ฒด๋ฆฌ ๋ง๊ณ !! */
System.out.println(sb.reverse()); /* !!๊ณ ๋ง ๋ฆฌ์ฒด ํ ๋งํ ๊ธฐ๋ธ ๋๋๋ฐ */
}
}
์๋ฐ StringBuilder ์ฌ์ฉ๋ฒ ๋ฐ ์ฌ์ฉํ๋ ์ด์
[JAVA] StringBuilder๋? StringBuilder ์ฌ์ฉ๋ฒ
์๋ฐ StringBuffer, StringBuilder ๊ฐ๋
๋ถํฐ ์ฌ์ฉ๋ฒ๊น์ง