String, StringBuffer
String (๋ฌธ์์ด)
String a = "Hello World"; // ๋ฆฌํฐ๋ด ํ๊ธฐ
String b = new String("Hello Java"); //๊ฐ์ฒด ์์ฑ
๋ฆฌํฐ๋ด ํ๊ธฐ
๊ฐ์ฒด ์์ฑ ์์ด ๊ณ ์ ๋ ๊ฐ์ ๊ทธ๋๋ก ๋์ ํ๋ ๋ฐฉ๋ฒ
"Hello World"๋ผ๋ ๋ฌธ์์ด์ intern poll JVM์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์ฅํ๊ณ ๋ค์์ ๋ค์ ๋์ผํ ๋ฌธ์์ฌ๋ง ์ ์ธ๋ ๋๋ cache๋ ๋ฌธ์์ด์ ๋ฆฌํด
๊ฐ์ฒด ์์ฑ(new) ๋ฐฉ์์ ํญ์ ์๋ก์ด String ๊ฐ์ฒด ์์ฑ
๋ฉ์๋
- equals
๋ ๊ฐ์ ๋ฌธ์์ด์ด ๋์ผํ์ง ๋น๊ตํ์ฌ ๊ฒฐ๊ณผ๊ฐ ๋ฆฌํด
String a = "hello";
String b = "world";
String c = "hello";
String d = new String("hello")
System.out.println(a.equals(b)); // false
System.out.println(a.equals(c)); // true
System.out.println(a.equals(d)); // true
System.out.println(a == c); // true
System.out.println(a == d); // flase
==
์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ ๋ a์ d๋ ๋ค๋ฅธ ๊ฐ์ฒด๋ผ๊ณ ํ๋จํด์ false ๋ฐํ
๋ฌธ์์ด์ ๋น๊ตํ ๋๋ ๋ฐ๋์ equals ์ฌ์ฉ!
- indexOf
ํน์ ๋ฌธ์์ด์ด ์์๋๋ ์์น(์ธ๋ฑ์ค) ๋ฆฌํด
String a = "Hello World";
System.out.println(a.indexOf("r")); // 8
System.out.println(a.indexOf("x")); // -1
์ฐพ๊ณ ์ ํ๋ ๊ฐ์ด ์์ ๊ฒฝ์ฐ '-1' ๋ฐํ
- contains
๋ฌธ์์ด์์ ํน์ ๋ฌธ์์ด์ด ํฌํจ๋์ด ์๋์ง ์ฌ๋ถ
String a = "Hello World";
System.out.println(a.contains("Hello")); // true
System.out.println(a.contains("good")); // false
- charAt
๋ฌธ์์ด์์ ํน์ ์ธ๋ฑ์ค์ ๋ฌธ์(char)๋ฆฌํด
String a = "Hello World";
System.out.println(a.charAt(8)); // r
- replaceAll
๋ฌธ์์ด ์ค ํน์ ๋ฌธ์์ด์ ๋ค๋ฅธ ๋ฌธ์์ด๋ก ๋ฐ๊ฟ
String a = "Hello World";
System.out.pringln(a.replace.All("World", "Java")) // Hello Java
- substring
๋ฌธ์์ด ์ค ํน์ ๋ถ๋ถ ๋ฝ์๋ด๊ธฐ
String a = "Hello World";
System.out.println(a.substring(0, 5)); // Hello
- toUpperCase / toLowerCase
String a = "Hello World";
System.out.println(a.toUpperCase()); // HELLO WORLD
System.out.println(a.toLowerCase()); //hello world
- split
String a = "a-b-c-d";
String[] result = a.split("-");
System.out.println(Arrays.toString(result)); // [a, b, c, d]
๋ฌธ์์ด ํฌ๋งคํ
์ฝ๋ | ์ค๋ช |
---|---|
%s | ๋ฌธ์์ด(String) |
%c | ๋ฌธ์ 1๊ฐ(character) |
%d | ์ ์(Integer) |
%f | ๋ถ๋์์(floating-point) |
%o | 8์ง์ |
%x | 16์ง์ |
%% | ๋ฌธ์ % ์์ฒด |
์์์ ํํ
System.out.println(String.format("%.4f", 3.141592));
// 3.1416
String.format
& System.out.printf
๋ ๋ค ๋น์ทํ์ง๋ง format์ ํฌ๋งคํ ๋ ๋ฌธ์์ด์ ๋ฆฌํดํ๊ณ printf๋ ํฌ๋งคํ ๋ ๋ฌธ์์ด์ ์ถ๋ ฅํ๋ค
StringBuffer
๋ฌธ์์ด์ ์ถ๊ฐํ๊ฑฐ๋ ๋ณ๊ฒฝํ ๋ ์ฐ๋ ์๋ฃํ
- append
StringBuffer sb = new StringBuffer()
sb.append("hello");
sb.append(" ");
sb.append("world")
String result = sb.toString();
System.out.println(result); // hello world
์๋์ ๊ฐ์ด String๋ง์ ์ด์ฉํด์ ํ ์๋ ์๋ค
String result = "";
result += "hello";
result += " ";
result += "world";
System.out.println(result)
์ฐจ์ด์ ...??
StringBuffer ๊ฐ์ฒด๋ ํ๋ฒ๋ง ์์ฑ๋๋ ๋ฐ๋ฉด, String์ +์ฐ์ฐ์ ํ ๋๋ง๋ค ์๋ก์ด String ๊ฐ์ฒด๊ฐ ์์ฑ๋๋ค.
String์ immutableํ ์๋ฃํ์ด๋ผ ๋งค๋ฒ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ ๋ฆฌํดํ๋ ๋ฐ๋ฉด StringBuffer๋ mutableํ์ฌ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ค.
๊ทธ๋ฌ๋ StringBuffer๋ ์๋ฃํ ์์ฒด๊ฐ ๋ฌด๊ฒ๊ธฐ ๋๋ฌธ์ ๋ฌธ์์ด ๋ณ๊ฒฝ ์์ ์ด ๊ฑฐ์ ์๋ ๊ฒฝ์ฐ์๋ String ์ฌ์ฉ!
- insert
StringBuffer sb = new StringBuffer();
sb.append("world");
sb.insert(0, "hello ");
System.out.println(sb.toString()); // hello world
- substring
StringBuffer sb = new StringBuffer();
sb.append("hello world");
System.out.println(sb.substring(0, 5)); //hello
๋ฌธ์์ด์ substring ๋ฉ์๋์ ๋์ผํ๋ค
'โญ Personal_Study > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋งต(Map) (0) | 2022.12.18 |
---|---|
๋ฐฐ์ด(Array) & ๋ฆฌ์คํธ(List) (0) | 2022.12.17 |
๋ฉ์๋์ ํจ์ ๊ธฐ์ด (0) | 2022.12.09 |
ํด๋์ค ๊ธฐ์ด (0) | 2022.12.09 |
์์ ์๋ฃํ (0) | 2022.12.08 |
๋๊ธ