"์๋ ํ์ธ์, ์๋ฏธ๊ณ !"
"์๋ , ๋ฆฌ์!"
"์ด์ ํฅ๋ฏธ๋ก์ด ๊ฒ์ ๋ฐฐ์ฐ๊ธฐ์ ๋ฌธ์์ด์ ๋ํด ์ถฉ๋ถํ ์๊ณ ์์ต๋๋ค. ๋ ๊ตฌ์ฒด์ ์ผ๋ก ๋งํ๋ฉด String ํด๋์ค์ ์ ์ฌํ์ง๋ง ์ ํํ ๋์ผํ์ง๋ ์์ ์๋ก์ด ํด๋์ค์ ๋๋ค."
"ํฅ๋ฏธ๋กญ๊ฒ ๋ค๋ฆฌ์ง๋ง ์ผ๋ฐ ๋ฌธ์์ด์ด ์ด๋ป๊ฒ ๋ถ์กฑํ๊ณ ๋ค๋ฅธ ๋ฌธ์์ด๊ณผ ๊ฐ์ ํด๋์ค๊ฐ ํ์ํ์ง ์์ ํ ๋ช ํํ์ง ์์ต๋๋ค."
"๋ฌธ์์ด์ด Java์์ ๋ถ๋ณ ๊ฐ์ฒด๋ผ๋ ์ฌ์ค๋ถํฐ ์์ํ๊ฒ ์ต๋๋ค."
"์ด๋์? ์์ด๋ฒ๋ ธ์ด์... ์๋๋ฉด ์ฒ์๋ถํฐ ๋ชฐ๋์ด์..."
"๋ถ๋ณ ๊ฐ์ฒด๋ ์์ฑ๋ ํ์ ์ํ๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ ๊ฐ์ฒด๋ผ๋ ์ ์ ์๊ธฐ์์ผ ๋๋ฆฌ๊ฒ ์ต๋๋ค."
"์... Java์์ ๋ฌธ์์ด์ ๋ณ๊ฒฝํ ์ ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?"
"์ด๊ฒ์ String ํด๋์ค๋ฅผ ๊ณ ๋๋ก ์ต์ ํํ๊ณ ๋ชจ๋ ๊ณณ์์ ์ฌ์ฉํ ์ ์๋๋ก ํ๊ธฐ ์ํด ์ํ๋์์ต๋๋ค. ์๋ฅผ ๋ค์ด HashMap ์ปฌ๋ ์ ์ ํค๋ก ์ฌ์ฉํ ๋๋ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ์ ํ๋ง ๊ถ์ฅ๋ฉ๋๋ค .
"๊ทธ๋ฌ๋ ํ๋ก๊ทธ๋๋จธ๊ฐ String ํด๋์ค๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ ๊ฒ์ด ๋ ํธ๋ฆฌํ๋ค๊ณ ์๊ฐํ๋ ์ํฉ์ด ์ข ์ข ๋ฐ์ํฉ๋๋ค. ๊ทธ๋ค์ ๋ฉ์๋ ์ค ํ๋๊ฐ ํธ์ถ๋ ๋๋ง๋ค ์ ํ์ ๋ฌธ์์ด์ ์์ฑํ์ง ์๋ ํด๋์ค๋ฅผ ์ํฉ๋๋ค."
"๊ทผ๋ฐ ๋ญ๊ฐ ์ข์๋ฐ?"
"์, ์์ฃผ ํฐ ๋ฌธ์์ด์ด ์๊ณ ๊ทธ ๋์ ๋ฌด์ธ๊ฐ๋ฅผ ์์ฃผ ์ถ๊ฐํด์ผ ํ๋ค๊ณ ๊ฐ์ ํด ๋ด
์๋ค. ์ด ๊ฒฝ์ฐ์๋ ๋ฌธ์ ๋ชจ์( )์ด ์ง์์ ์ผ๋ก ArrayList<Character>
๋ฌธ์์ด ๊ฐ์ฒด๋ฅผ ๋ค์ ๋ง๋ค๊ณ ์ฐ๊ฒฐํ๋ ๊ฒ๋ณด๋ค ๋ ํจ์จ์ ์ผ ์ ์์ต๋๋ค."
"๊ทธ๋์ String ํด๋์ค๊ฐ ์๋ ๋ฌธ์์ด์ด ํ์ํ ๊ฑฐ์ฃ ?"
"๊ทธ๋ ์ต๋๋ค. Java ์ธ์ด์ ๋ฌธ์์ด๊ณผ ๊ฐ์ ๋ณ๊ฒฝ ๊ฐ๋ฅํ ์ ํ์ด ์ถ๊ฐ๋์์ต๋๋ค. StringBuilder
"๋ผ๊ณ ํฉ๋๋ค.
๊ฐ์ฒด ๋ง๋ค๊ธฐ
"๊ธฐ์กด ๋ฌธ์์ด์ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ค๋ฉด StringBuilder
๋ค์๊ณผ ๊ฐ์ ๋ช
๋ น๋ฌธ์ ์คํํด์ผ ํฉ๋๋ค.
StringBuilder name = new StringBuilder(string);
"๋น ๋ณ๊ฒฝ ๊ฐ๋ฅ ๋ฌธ์์ด์ ๋ง๋ค๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ช ๋ น๋ฌธ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
StringBuilder name = new StringBuilder();
๋ฐฉ๋ฒ ๋ชฉ๋ก
"์ด StringBuilder
์์
์๋ 24๊ฐ์ง ์ ์ฉํ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๊ฐ์ฅ ์ค์ํ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ฐฉ๋ฒ | ์ค๋ช |
---|---|
|
์ ๋ฌ๋ ๊ฐ์ฒด๋ฅผ ๋ฌธ์์ด๋ก ๋ณํํ๊ณ ํ์ฌ ๋ฌธ์์ด์ ์ถ๊ฐํฉ๋๋ค. |
|
์ ๋ฌ๋ ๊ฐ์ฒด๋ฅผ ๋ฌธ์์ด๋ก ๋ณํํ์ฌ ํ์ฌ ๋ฌธ์์ด์ ์ค๊ฐ์ ์ฝ์ |
|
start..end ๊ฐ๊ฒฉ์ผ๋ก ์ง์ ๋ ๋ฌธ์์ด ๋ถ๋ถ์ ์ ๋ฌ๋ ๋ฌธ์์ด๋ก ๋ฐ๊ฟ๋๋ค. |
|
๋ฌธ์์ด์์ ์ง์ ๋ ์ธ๋ฑ์ค๋ฅผ ๊ฐ์ง ๋ฌธ์๋ฅผ ์ ๊ฑฐํฉ๋๋ค. |
|
๋ฌธ์์ด์์ ์ง์ ๋ ๊ฐ๊ฒฉ ๋ด์ ๋ฌธ์๋ฅผ ์ ๊ฑฐํฉ๋๋ค. |
|
ํ์ฌ ๋ฌธ์์ด์์ ํ์ ๋ฌธ์์ด์ ๊ฒ์ํฉ๋๋ค. |
|
๋์์ ์์ํ์ฌ ํ์ฌ ๋ฌธ์์ด์์ ํ์ ๋ฌธ์์ด์ ๊ฒ์ํฉ๋๋ค. |
|
์ ๋ฌ๋ ์ธ๋ฑ์ค์ ์๋ ๋ฌธ์์ด์ ๋ฌธ์๋ฅผ ๋ฐํํฉ๋๋ค. |
|
์ง์ ๋ ๊ฐ๊ฒฉ์ผ๋ก ์ ์๋ ํ์ ๋ฌธ์์ด์ ๋ฐํํฉ๋๋ค. |
|
ํ์ฌ ๋ฌธ์์ด์ ๋ค์ง์ต๋๋ค. |
|
์ง์ ๋ ์ธ๋ฑ์ค์ ๋ฌธ์๋ฅผ ์ ๋ฌ๋ ๋ฌธ์๋ก ๋ณ๊ฒฝํฉ๋๋ค. |
|
๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ๋ฌธ์๋ก ๋ฐํ |
"์ด์ ๊ฐ ๋ฐฉ๋ฒ์ ๋ํด ๊ฐ๋จํ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
๋ฌธ์์ด์ ์ถ๊ฐ
"๋ณ๊ฒฝ ๊ฐ๋ฅํ ๋ฌธ์์ด( StringBuilder
) ์ ๋ฌด์ธ๊ฐ๋ฅผ ์ถ๊ฐํ๋ ค๋ฉด append()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ญ์์ค. ์:
์ํธ | ์ค๋ช |
---|---|
|
Hi |
ํ์ค ๋ฌธ์์ด๋ก ๋ณํ
" StringBuilder
๊ฐ์ฒด๋ฅผ String ๊ฐ์ฒด๋ก ๋ณํํ๋ ค๋ฉด ๋ฉ์๋๋ฅผ ํธ์ถํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค toString()
. ์
์ํธ | ์ฐ์ถ |
---|---|
|
Hi123 |
์บ๋ฆญํฐ๋ ์ด๋ป๊ฒ ์ญ์ ํ๋์?
"๋ณ๊ฒฝ ๊ฐ๋ฅํ ๋ฌธ์์ด์์ ๋ฌธ์๋ฅผ ์ญ์ ํ๋ ค๋ฉด ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค deleteCharAt()
. ์:
์ํธ | ์ฐ์ถ |
---|---|
|
Helo |
๋ฌธ์์ด์ ์ผ๋ถ๋ฅผ ๋ค๋ฅธ ๋ฌธ์์ด๋ก ๋ฐ๊พธ๋ ค๋ฉด ์ด๋ป๊ฒ ํฉ๋๊น?
"์ด๋ฅผ ์ํ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค replace(int begin, int end, String str)
. ์:
์ํธ | ์ฐ์ถ |
---|---|
|
MeHello!w |
"ํธ๋ฆฌํ๊ตฐ์. ๊ฐ์ฌํฉ๋๋ค, ๋ฆฌ์."
"๋งํ์ง ๋ง. ์ด๊ฑด ์ด๋, ์ค์ ๊ฑฐ๊พธ๋ก ๋ค์ง์ ์ ์์ด? ์ด๋ป๊ฒ ํ ๊ฑด๋ฐ?"
"๊ธ์... ๋๋ ์ ์์ฑํ๊ณ StringBuilder
๊ทธ ์์ ๋ฌธ์์ด์ ๋ฃ์ ๊ฒ์
๋๋ค... ๊ทธ๋ฐ ๋ค์ ์ ๋ฌธ์์ด์ ๋ง๋ค๊ณ ๋ง์ง๋ง ๋ฌธ์์์ ์ฒซ ๋ฒ์งธ ๋ฌธ์๊น์ง ๋ฃจํ์์... ์๋๋ฉด ๋นํธ ์ํํธ...
"๋์์ง ์์ต๋๋ค. ํ์ง๋ง ๋ ๋น ๋ฅผ ์ ์์ต๋๋ค. ์ด๋ฅผ ์ํ ํน๋ณํ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค โ reverse();
์:
์ํธ | ์ฐ์ถ |
---|---|
|
olleH |
" StringBuilder
ํด๋์ค ์ธ์๋ Java์๋ ์ด๋ผ๋ ๋ ๋ค๋ฅธ ๋ฌธ์์ด๊ณผ ์ ์ฌํ ํด๋์ค๊ฐ ์์ต๋๋ค StringBuffer
. ํด๋์ค์ ์ ์ฌ StringBuilder
ํ์ง๋ง ํด๋น ๋ฉ์๋๋ ์์์ด๋ก ํ์๋ฉ๋๋ค synchronized
."
"๊ทธ๊ฒ ๋ฌด์จ ๋ป์ด์ผ?"
StringBuffer
" ๊ฐ์ฒด๊ฐ ์ฌ๋ฌ ์ค๋ ๋์์ ๋์์ ์ก์ธ์ค๋ ์ ์์์ ์๋ฏธํฉ๋๋ค ."
"์ ๋ ์์ง ์ค๋ ๋์ ์ต์ํ์ง ์์ต๋๋ค. ํ์ง๋ง '์ฌ๋ฌ ์ค๋ ๋์์ ์ก์ธ์คํ ์ ์์'์ด '์ฌ๋ฌ ์ค๋ ๋์์ ์ก์ธ์คํ ์ ์์'๋ณด๋ค ๋ถ๋ช
ํ ๋ซ์ต๋๋ค... ๊ทธ๋ผ ํญ์ ์ฌ์ฉํ์ง ์๋ ์ด์ ๋ ๋ฌด์์
๋๊น? StringBuffer
"
"๋ณด๋ค ํจ์ฌ ๋๋ฆฌ๊ธฐ ๋๋ฌธ์
๋๋ค . Java MultithreadingStringBuilder
ํ์คํธ ์์ ๋ฉํฐ์ค๋ ๋ฉ์ ์ ๊ทน์ ์ผ๋ก ํ์ํ๊ธฐ ์์ํ ๋ ์ด๋ฌํ ํด๋์ค๊ฐ ํ์ํ ์ ์์ต๋๋ค .
"์์ง ์๋๋ก ๊ธฐ์ต์ ๋จ๊ธธ๊ฒ์. '๋ฏธ๋๋ฅผ ์ํด'๋ผ๊ณ ํ์ํ์ต๋๋ค.
GO TO FULL VERSION