๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ–ฅ๏ธ ๋ฐฑ์—”๋“œ/Java

[ch.9] String, StringBuffer, StringBuilder ํด๋ž˜์Šค

by OR15A 2023. 11. 13.

String ํด๋ž˜์Šค (java.lang ํŒจํ‚ค์ง€)

  • ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ํด๋ž˜์Šค. ๋ถˆ๋ณ€.
  • ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์‹œ ์ƒ์„ฑ์ž์˜ (๋งค๊ฐœ๋ณ€์ˆ˜)๋กœ ์ž…๋ ฅ๋ฐ›๋Š” ๋ฌธ์ž์—ด์„ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์— ๋ฌธ์ž ๋ฐฐ์—ด๋กœ ์ €์žฅํ•จchar[ ]
  • ํ•œ ๋ฒˆ ์ƒ์„ฑ๋œ String์ธ์Šคํ„ด์Šค๊ฐ€ ๊ฐ–๊ณ ์žˆ๋Š” ๋ฌธ์ž์—ด์€ ์ฝ์–ด์˜ฌ ์ˆ˜๋งŒ ์žˆ๊ณ  ๋ณ€๊ฒฝํ•  ์ˆ˜๋Š” ์—†์Œ.
  • ๋ฌธ์ž์—ด ๊ฒฐํ•ฉ์—๋Š” + ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•จ.
  • ๋ฌธ์ž์—ด์˜ ๋น„๊ต๋Š” ๋ฆฌํ„ฐ๋Ÿด ์ง€์ •ํ›„ ๋น„๊ตํ•จ.
  • equals( )์‚ฌ์šฉ ์‹œ ๋‘ ๋ฌธ์ž์—ด์˜ ๋‚ด์šฉ์„ ๋น„๊ตํ•จ.
  • ๊ฐ™์€ ๋‚ด์šฉ์˜ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์€ ํ•œ ๋ฒˆ๋งŒ ์ €์žฅ๋จ.

๋นˆ ๋ฌธ์ž์—ด

  • ๊ธธ์ด๊ฐ€ 0์ธ char[ ]
    • new char[0] ok
    • String s = โ€œ โ€; ok
    • char c = โ€˜ โ€™; no!
    • ๋ฐ˜๋“œ์‹œ ํ•˜๋‚˜์˜ ๋ฌธ์ž ์ง€์ •ํ•˜๊ธฐ.

join( ) โ†” split( )

  • ์—ฌ๋Ÿฌ ๋ฌธ์ž์—ด ์‚ฌ์ด์— ๊ตฌ๋ถ„์ž๋ฅผ ๋„ฃ์–ด์„œ ๊ฒฐํ•ฉํ•จ
  • ๊ตฌ๋ถ„์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋ˆ„์–ด์„œ ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜

String.format( )

  • ํ˜•์‹ํ™”๋œ ๋ฌธ์ž์—ด ๋งŒ๋“ค๊ธฐ.
  • printf( )์™€ ์‚ฌ์šฉ๋ฒ• ๊ฐ™์Œ.
  • ๊ธฐ๋ณธํ˜•(์ˆซ์ž) -> โ‘ ์ˆซ์ž + โ€œ โ€ -> String
  • ๊ธฐ๋ณธํ˜•(์ˆซ์ž) -> โ‘กvalueOf( ) -> String
  • String -> โ‘ valueOf( ) -> ๊ธฐ๋ณธํ˜•(์ˆซ์ž)
  • String -> โ‘กparseInt( ) -> ๊ธฐ๋ณธํ˜•(์ˆซ์ž)

Stringํด๋ž˜์Šค์˜ hashcode( )

  • ๋ฌธ์ž์—ด ๋‚ด์šฉ๊ณผ ๊ด€๋ จ๋œ ๊ณ ์œ ํ•œ ํ•ด์‹œ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ด์„œ ๋ฐ˜ํ™˜ํ•จ.
  • ๋™์ผํ•œ ๋ฌธ์ž์—ด ๋‚ด์šฉ์— ๋Œ€ํ•ด์„œ๋Š” ํ•ญ์ƒ ๊ฐ™์€ ํ•ด์‹œ์ฝ”๋“œ๊ฐ€ ๋ฐ˜ํ™˜๋˜์–ด ๊ฐ™์€ ๋ฌธ์ž์—ด๋กœ ํŒ๋‹จ๋  ์ˆ˜ ์žˆ์Œ.
  • public int hashCode() { int h = hash; if (h == 0 && value.length > 0) {for (int i = 0; i < value.length; i++) {h = 31 * h + value[i];} hash = h;} return h; }

CharSequence

  • String, StringBuffer, StringBuilder์˜ ๊ณตํ†ต ์กฐ์ƒ์ด ์—†์–ด์„œ ๋งŒ๋“  ์ธํ„ฐํŽ˜์ด์Šค


StringBuffer ํด๋ž˜์Šค

  • ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ์— ์‚ฌ์šฉํ•จ.
  • ์ง€์ •๋œ ๋ฌธ์ž์—ด ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ.
  • ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์‹œ ๊ทธ ํฌ๊ธฐ ์ง€์ • ๊ฐ€๋Šฅ.
  • ๊ธฐ๋ณธ ๋ฒ„ํผ: 16๊ฐœ์˜ ๋ฌธ์ž ์ €์žฅ ๊ฐ€๋Šฅ.
  • StringBufferํด๋ž˜์Šค๋Š” toString( ) ์˜ค๋ฒ„๋ผ์ด๋”ฉO
  • equals( ) ์˜ค๋ฒ„๋ผ์ด๋”ฉX
  • ๋ฌธ์ž์—ด ๋น„๊ต ์‹œ
    • โ‘ toString( )์„ ํ˜ธ์ถœํ•ด์„œ String์ธ์Šคํ„ด์Šค๋ฅผ ์–ป๊ณ 
    • โ‘ก์ด ์ธ์Šคํ„ด์Šค์— Stringํด๋ž˜์Šค์˜ equals( )์‚ฌ์šฉ


StringBuilder ํด๋ž˜์Šค

  • StringBufferํด๋ž˜์Šค์—์„œ ์“ฐ๋ ˆ๋“œ ๋™๊ธฐํ™”๋งŒ ๋บ€ ๊ฒƒ.