StringBuilder, StringBuffer
String, StringBuilder, StringBuffer ํด๋์ค๋ ๋ชจ๋ Serializable, CharSequence, Comparable ์ธํฐํ์ด์ค๊ฐ ๊ตฌํ๋ final calss ์ด๋ค.
Serializable : ์ง๋ ฌํ๋ฅผ ์ํ ์ธํฐํ์ด์ค
CharSequence : ์์๋ฅผ ์ ์ํ๊ธฐ ์ํ ์ธํฐํ์ด์ค
Comparable : ์์๋ฅผ ์ ์ํ๊ธฐ ์ํ ์ธํฐํ์ด์ค
๊ฐ๋ณ์ ์ธ ๊ธธ์ด๋ฅผ ๊ฐ์ง๋ฏ๋ก ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ์์ ์์ ๋ฏธ๋ฆฌ ๊ทธ ํฌ๊ธฐ๋ ๊ฐ์ ์ง์ ํ๊ฑฐ๋ ์คํ ์๊ฐ์ ๋ฒํผ์ ํฌ๊ธฐ๋ฅผ ๋ฐ๊ฟ ์ ์๋ค.
StringBuilder์ StringBuffer ํด๋์ค๋ String๊ณผ ๊ฐ์ด ๋ฌธ์์ด์ ์ฒ๋ฆฌํ๋ ํด๋์ค๋ก ์ฐจ์ด์ ์ ๋ฌธ์์ด ๋ฒํผ๋ฅผ ์์ ํ ์ ์๋ค. StringBuilder์ StringBuffer ํด๋์ค๋ ์ ์ฌํ์ง๋ง StringBuffer ํด๋์ค์ ๋ฉ์๋๋ ํ์์ ๋ฐ๋ผ `๋๊ธฐํ`๋์ด ๋ฉํฐ์ค๋ ๋ ํ๊ฒฝ์์ ์์ ํ์ง๋ง, StringBuilder๋ ๋ฉํฐ ์ค๋ ๋ ํ๊ฒฝ์์ ๋๊ธฐํ ๋์ง ์๋๋ค.
package ch07.unit04;
/*
* StringBuilder,StringBuffer
* :๊ฐ๋ณ์ ์ธ ๋ฌธ์์ด์ ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ string ๋ณด๋ค ๋น ๋ฆ
* :๊ฐ๋ณ์ ์ธ ๋ฌธ์์ด์ ์ฒ๋ฆฌํ์ง ์๋ ๊ฒฝ์ฐ๋ผ๋ฉด String ์ฌ์ฉ
* :StringBuilder,StringBuffer์ ๋ง์ง๋ง์ String ๋ก ๋ณํํ์ฌ ์ฌ์ฉ
* โถStringBuilder
* ๋์์ฑ ์ง์ํ์ง ์์
* StringBuffer๋ณด๋ค ์๋๊ฐ ๋น ๋ฆ
* StringBuffer
* :๋์์ฑ ์ง์(๋ฉํฐ ์ค๋ ๋ ํ๊ฒฝ์์ ์์ )
// ์๋์ฒ๋ผ ๊ฐ๋ณ์ ์ธ ๋ฌธ์์ด์ StringBuilder ๋ฑ์ ์ฌ์ฉํด์ผ ํ๋ค.
String s = "java,";
s += "html,";
s += "css,";
s += "javascript";
*/
public class Ex11 {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("korea");
StringBuilder sb2 = new StringBuilder("korea");
System.out.println(sb);
System.out.println(sb2);
System.out.println(sb==sb2);
System.out.println(sb.equals(sb2));
// String ๋ณํ
String s= sb.toString();
String s2= sb2.toString();
System.out.println(s.equals(s2));
s ="koera";
s2 =new String ("korea");
System.out.println("๋ค๋ฅธ๊ฐ์ฒด์๋ฌธ์์ด"+s.contentEquals(s2));
System.out.println("๋ค๋ฅธ๊ฐ์ฒด์๋ฌธ์์ด๋น๊ต:"+s.contentEquals(sb));
}
}
package ch07.unit04;
public class EX12 {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
System.out.println("๋ฒํผ์ํฌ๊ธฐ : " + sb.capacity());
sb.append("์์ธ");
sb.append("๋ถ์ฐ");
sb.append("๋๊ตฌ");
sb.append("์ธ์ฒ");
sb.append("๊ด์ฃผ");
sb.append("๋์ ");
sb.append("์ธ์ฐ");
sb.append("์ธ์ข
");
sb.append("๊ฒฝ๊ธฐ๋");
System.out.println(sb);
System.out.println("๋ฒํผ์ํฌ๊ธฐ : " + sb.capacity());
//์ธ์ฒ ์ธ๋ฑ์ค(์์ผ๋ฉด -1)
System.out.println(sb.indexOf("์ธ์ฒ"));
System.out.println(sb.toString().toUpperCase());
//์์ธ ์์ ํ๊ตญ ์ถ๊ฐ
sb.insert(0, "ํ๊ตญ");
System.out.println(sb);
sb.insert(sb.indexOf("์ธ์ข
"), "seoul");
System.out.println(sb);
sb.insert(sb.indexOf("์ธ์ข
")+"์ธ์ข
".length(), "seoul");
System.out.println(sb);
sb.delete(sb.indexOf("seoul"),sb.indexOf("seoul")+"seoul".length());
System.out.println(sb);
sb.delete(sb.indexOf("๋์ "), sb.length()); // ๋์ ๋ถํฐ ๋ค๋ก ๋ชจ๋
System.out.println(sb);
System.out.println("๋ฒํผ์ ํฌ๊ธฐ : "+ sb.capacity());
//๋ฒํผ์ ํฌ๊ธฐ๋ฅผ ๋ฌธ์์ด์ ๊ธธ์ด๋ก
sb.trimToSize();
System.out.println("๋ฒํผ์ ํฌ๊ธฐ :" + sb.capacity());
//๋ชจ๋ ์ญ์
sb.delete(0, sb.length());
System.out.println("๋ชจ๋ ์ญ์ ํ : "+sb);
}
}
package ch07.unit04;
public class Ex13 {
public static void main(String[] args) {
String s;
//๋ด๋ถ์ ์ผ๋ก StringBuilder ์ฌ์ฉ ํ๋ฏ๋ก ์ฑ๋ฅ์ด ์ฐ์
s = "JAVA"
+", SPRING"
+", HTML"
+", CSS";
System.out.println(s);
//์ฑ๋ฅ์ด ๋งค์ฐ ๋์จ
s = "JAVA";
s += ", SPRING";
s += ", HTML";
s += ", CSS";
System.out.println(s);
//๋ฌธ์์ด์ด ๊ฐ๋ณ์ ์ธ ๊ฒฝ์ฐ
StringBuilder sb = new StringBuilder();
sb.append("JVAV");
sb.append(", SPRING");
sb.append(", HTML");
sb.append(", CSS");
System.out.println(sb);
}
}
๋ฌธ์์ด ์ถ๊ฐ๋ฅผ ์ํด StringBuffer ํด๋์ค์ append() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ String ํด๋์ค์ ๋น๊ตํ๋ฉด ๋ฐ์ด๋ ์ฑ๋ฅ์ ๋ณด์ธ๋ค. ํ์ง๋ง, StringBuffer ๊ฐ์ฒด์ ์์ฑ ๋ฐ toString() ๋ฉ์๋๋ฅผ ํตํ String ๊ฐ์ฒด์ ์์ฑ์ ๋ฐ๋์ ํ์๋ก ํ๋ฏ๋ก ๊ฒฝ์ฐ์ ๋ฐ๋ผ ๋ ๋ง์ ์๊ฐ ๋ฐ ๋ฉ๋ชจ๋ฆฌ ์์์ ๋ญ๋น๋ฅผ ์ด๋ํ ์ ์๋ค.
String ํด๋์ค๋ StringBuffer ํด๋์ค์ ๋ฌ๋ฆฌ ์ธ์คํด์คํ๋ฅผ ํตํ์ฌ ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ ์๋์ ์ผ๋ก ์ ์ ์์์ ์๋ชจํ๋ฉฐ, toString()๋ฉ์๋๋ฅผ ํตํ์ฌ String ๊ฐ์ฒด๋ก ๋ฐ๊ฟ ํ์๊ฐ ์๋ค. StringBuffer ํด๋์ค๋ ํ๋์ ๋ฌธ์์ด์ ๋ํ์ฌ ๋ค๋ฅธ ๋ฌธ์๋ ๋ฌธ์์ด์ ์ถ๊ฐ๊ฐ ์ฌ๋ฌ๋ฒ ์ด๋ฃจ์ด์ง๋ ๊ฒฝ์ฐ ์ ๋ฆฌํ๋ฉฐ, ๋จ ํ๋ฒ์ ๋ฌธ์์ด ์ถ๊ฐ์ ๋ํ์ฌ StringBuffer ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์คํ๋ ค ์๊ฐ ๋ฐ ๋ฉ๋ชจ๋ฆฌ ์ง์ ๋ญ๋น๋ฅผ ์ด๋ํ๊ฒ ๋๋ค.
package ch07.unit04;
public class Ex15 {
public static void main(String[] args) {
//๋ฉํฐ ์ค๋ ๋ ํ๊ฒฝ์์ StringBuffer ์์ ํ์ง๋ง
// StringBuilder๋ ์์ ํ์ง ์์
StringBuffer buffer = new StringBuffer();
StringBuilder builder = new StringBuilder();
new Thread(() -> {
for(int i=0; i<10000; i++) {
buffer.append(i);
builder.append(i);
}
}).start();
new Thread(() -> {
for(int i=0; i<10000; i++) {
buffer.append(i);
builder.append(i);
}
}).start();
new Thread ( () -> {
try {
Thread.sleep(5000);
System.out.println("StringBuffer :"+buffer.length());
System.out.println("StringBuilder :"+builder.length());
} catch (Exception e) {
e.printStackTrace();
}
}).start();
}
}
'๐ป > JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] 12์ผ์ฐจ : ์๋ฐ์ ๊ธฐ๋ณธ API ํด๋์ค 5 (0) | 2024.03.02 |
---|---|
[Java] 11์ผ์ฐจ : ์๋ฐ์ ๊ธฐ๋ณธ API ํด๋์ค 4 - (๋ ์ง) (0) | 2024.02.29 |
[Java] 10์ผ์ฐจ : ์๋ฐ์ ๊ธฐ๋ณธ API ํด๋์ค - String (1) | 2024.02.27 |
[Java] 10์ผ์ฐจ : ์๋ฐ์ ๊ธฐ๋ณธ API ํด๋์ค (0) | 2024.02.27 |
[Java] 9์ผ์ฐจ : ํด๋์ค(class)์ ๊ฐ์ฒด(Object) ์์ฑ์ (0) | 2024.02.26 |