๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โญ Personal_Study/Java

String & StringBuffer

by ํฌ์ŠคํŠธ์‰์ดํฌ 2022. 12. 10.

String, StringBuffer

String (๋ฌธ์ž์—ด)

String a = "Hello World"; // ๋ฆฌํ„ฐ๋Ÿด ํ‘œ๊ธฐ
String b = new String("Hello Java"); //๊ฐ์ฒด ์ƒ์„ฑ

๋ฆฌํ„ฐ๋Ÿด ํ‘œ๊ธฐ

๊ฐ์ฒด ์ƒ์„ฑ ์—†์ด ๊ณ ์ •๋œ ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ๋Œ€์ž…ํ•˜๋Š” ๋ฐฉ๋ฒ•

"Hello World"๋ผ๋Š” ๋ฌธ์ž์—ด์„ intern poll JVM์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์ €์žฅํ•˜๊ณ  ๋‹ค์Œ์— ๋‹ค์‹œ ๋™์ผํ•œ ๋ฌธ์ž์—ฌ๋ง ์„ ์–ธ๋  ๋•Œ๋Š” cache๋œ ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ด

๊ฐ์ฒด ์ƒ์„ฑ(new) ๋ฐฉ์‹์€ ํ•ญ์ƒ ์ƒˆ๋กœ์šด String ๊ฐ์ฒด ์ƒ์„ฑ

๋ฉ”์„œ๋“œ

  1. 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 ์‚ฌ์šฉ!

 

  1. indexOf

ํŠน์ • ๋ฌธ์ž์—ด์ด ์‹œ์ž‘๋˜๋Š” ์œ„์น˜(์ธ๋ฑ์Šค) ๋ฆฌํ„ด

String a = "Hello World";

System.out.println(a.indexOf("r")); // 8
System.out.println(a.indexOf("x")); // -1

์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’์ด ์—†์„ ๊ฒฝ์šฐ '-1' ๋ฐ˜ํ™˜

 

  1. contains

๋ฌธ์ž์—ด์—์„œ ํŠน์ • ๋ฌธ์ž์—ด์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ์—ฌ๋ถ€

String a = "Hello World";

System.out.println(a.contains("Hello")); // true
System.out.println(a.contains("good")); // false

 

  1. charAt

๋ฌธ์ž์—ด์—์„œ ํŠน์ • ์ธ๋ฑ์Šค์˜ ๋ฌธ์ž(char)๋ฆฌํ„ด

String a = "Hello World";

System.out.println(a.charAt(8)); // r

 

  1. replaceAll

๋ฌธ์ž์—ด ์ค‘ ํŠน์ • ๋ฌธ์ž์—ด์„ ๋‹ค๋ฅธ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊ฟˆ

String a = "Hello World";

System.out.pringln(a.replace.All("World", "Java")) // Hello Java

 

  1. substring

๋ฌธ์ž์—ด ์ค‘ ํŠน์ • ๋ถ€๋ถ„ ๋ฝ‘์•„๋‚ด๊ธฐ

String a = "Hello World";

System.out.println(a.substring(0, 5)); // Hello

 

  1. toUpperCase / toLowerCase
String a = "Hello World";

System.out.println(a.toUpperCase()); // HELLO WORLD
System.out.println(a.toLowerCase()); //hello world

 

  1. 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

๋ฌธ์ž์—ด์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•  ๋•Œ ์“ฐ๋Š” ์ž๋ฃŒํ˜•

  1. 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 ์‚ฌ์šฉ!

 

  1. insert
StringBuffer sb = new StringBuffer();

sb.append("world");
sb.insert(0, "hello ");

System.out.println(sb.toString()); // hello world

 

  1. 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

๋Œ“๊ธ€