Codegym University ๊ณผ์ ์ ์ผ๋ถ๋ก ๋ฉํ ์ ํจ๊ปํ๋ ๊ฐ์ ์ค๋ํซ. ์ ์ฒด ๊ณผ์ ์ ๋ฑ๋กํ์ญ์์ค.
"์๋ ํ์ธ์, ์๋ฏธ๊ณ ! ์ค๋์ ๋ฌธ์์ด ์์ ๊ณผ ๊ด๋ จ๋ ๋ช ๊ฐ์ง ๋ ์ผ๋ฐ์ ์ธ ์๋๋ฆฌ์ค๋ฅผ ๋ถ์ํ๊ฒ ์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ฌธ์์ด์ ์ฌ๋ฌ ๋ถ๋ถ์ผ๋ก ๋ถํ ํ๋ ๋ฐฉ๋ฒ์ ์๊ณ ์์ต๋๊น?"
"๋ฐ๋ก ๋งํ์ง ์์๊ฒ, ์๋ฆฌ. ํ์ง๋ง ๋๋ ๋์๊ฒ ๋งํ ๊ฑฐ์ผ, ๊ทธ๋ ์ง?"
split()
๋ฐฉ๋ฒ
"์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๋ฌธ์์ด์ ์ฌ๋ฌ ๋ถ๋ถ์ผ๋ก ๋ถํ ํ๋ ์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ์ ์ด split()
๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ๊ฒ์
๋๋ค. ํน์ํ ๊ตฌ๋ถ ๋ฌธ์์ด์ ์ ์ํ๋ ์ ๊ท์์ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌํด์ผ ํฉ๋๋ค. ์๋ฐ ์ปฌ๋ ์
ํ์คํธ.
์:
์ํธ | ๊ฒฐ๊ณผ |
---|---|
|
๊ฒฐ๊ณผ๋ ์ธ ๋ฌธ์์ด์ ๋ฐฐ์ด์
๋๋ค.
|
๊ฐ๋จํ์ง๋ง ๋๋ก๋ ์ด ์ ๊ทผ ๋ฐฉ์์ด ๊ณผ๋ํฉ๋๋ค. ๊ตฌ๋ถ ๊ธฐํธ(์: ๊ณต๋ฐฑ, ๊ฐํ ๋ฌธ์, ํญ, ๋ง์นจํ)๊ฐ ๋ง์ผ๋ฉด ๋ค์ ๋ณต์กํ ์ ๊ท์์ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค."
"๊ธ์์. ๊ทธ๋ฆฌ๊ณ ์ฝ๊ธฐ ์ด๋ ต๋ค๋ฉด ๋ณ๊ฒฝํ๊ธฐ ์ด๋ ต์ต๋๋ค.
StringTokenizer
์์
Codegym University ๊ณผ์ ์ ์ผ๋ถ๋ก ๋ฉํ ์ ํจ๊ปํ๋ ๊ฐ์ ์ค๋ํซ. ์ ์ฒด ๊ณผ์ ์ ๋ฑ๋กํ์ญ์์ค.
"Java์๋ ์ ์ฒด ์์ ์ด ๋ฌธ์์ด์ ํ์ ๋ฌธ์์ด๋ก ๋ถํ ํ๋ ํน์ ํด๋์ค๊ฐ ์์ต๋๋ค.
"์ด ํด๋์ค๋ ์ ๊ท ํํ์์ ์ฌ์ฉํ์ง ์์ต๋๋ค. ๋์ ๊ตฌ๋ถ ๊ธฐํธ๋ก ๊ตฌ์ฑ๋ ๋ฌธ์์ด์ ์ ๋ฌํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ์ฅ์ ์ ์ ์ฒด ๋ฌธ์์ด์ ํ ๋ฒ์ ์ฌ๋ฌ ์กฐ๊ฐ์ผ๋ก ๋๋์ง ์๊ณ ์ฒ์๋ถํฐ ๋๊น์ง ํ๋์ฉ ์ด๋ํ๋ค๋ ๊ฒ์ ๋๋ค. ํ ๋ฒ์ ํ ๊ฑธ์.
์ด ํด๋์ค์๋ ์์ฑ์์ ๋ ๊ฐ์ ๋ฉ์๋๊ฐ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ถ๋ถ์ผ๋ก ๋ถํ ํ ๋ฌธ์์ด๊ณผ ์ผ๋ จ์ ๊ตฌ๋ถ ๋ฌธ์๋ก ๊ตฌ์ฑ๋ ๋ฌธ์์ด์ ์์ฑ์์ ์ ๋ฌํฉ๋๋ค.
ํ๋ ์์ | ์ค๋ช |
---|---|
|
๋ค์ ํ์ ๋ฌธ์์ด์ ๋ฐํํฉ๋๋ค. |
|
ํ์ ๋ฌธ์์ด์ด ๋ ์๋์ง ํ์ธํฉ๋๋ค. |
"์ด ํด๋์ค๋ ์ ์ง ์ค์บ๋ ํด๋์ค๋ฅผ ๋ ์ฌ๋ฆฌ๊ฒ ํฉ๋๋ค. ์ด ํด๋์ค์๋ nextLine()
๋ฉ์๋ ๊ฐ ์์ต๋๋ค hashNextLine()
.
"์ ๊ด์ฐฐํ์
จ์ต๋๋ค. StringTokenizer
๋ค์ ๋ช
๋ น์ผ๋ก ๊ฐ์ฒด๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
StringTokenizer name = new StringTokenizer(string, delimiters);
์ฌ๊ธฐ์ ๋ฌธ์์ด์ ๋ถ๋ถ์ผ๋ก ๋๋ ๋ฌธ์์ด์ ๋๋ค. ๊ตฌ๋ถ ๊ธฐํธ ๋ ๋ฌธ์์ด์ด๋ฉฐ ๊ทธ ์์ ๊ฐ ๋ฌธ์๋ ๊ตฌ๋ถ ๊ธฐํธ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ์:
์ํธ | ์ฝ์ ์ถ๋ ฅ |
---|---|
|
|
"๋ ๋ฒ์งธ ๋ฌธ์์ด์์ ์์ฑ์์๊ฒ ์ ๋ฌ๋ ๋ฌธ์์ด์ ๊ฐ ๋ฌธ์๋ StringTokenizer
๊ตฌ๋ถ ๊ธฐํธ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
String.format()
๋ฉ์๋์ StringFormatter
ํด๋์ค
"String ํด๋์ค์ ๋ ๋ค๋ฅธ ํฅ๋ฏธ๋ก์ด ๋ฐฉ๋ฒ์ format()
.
"๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ค์ํ ๋ณ์๊ฐ ์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์ด๋ป๊ฒ ํ ์ค๋ก ํ๋ฉด์ ํ์ํฉ๋๊น? ์๋ฅผ ๋ค์ด ์ผ๋ถ ๋ฐ์ดํฐ(์ผ์ชฝ ์ด)์ ์ํ๋ ์ถ๋ ฅ(์ค๋ฅธ์ชฝ ์ด)์ด ์์ต๋๋ค.
์ํธ | ์ฝ์ ์ถ๋ ฅ |
---|---|
|
|
์ด๋ฌํ ํ๋ก๊ทธ๋จ์ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
ํ๋ก๊ทธ๋จ ์ฝ๋ |
---|
|
"์ฝ๋๊ฐ ๊ฐ๋ ์ฑ์ด ์ข์ง ์๋ค๋ ์ ์ ๋์ํ์ค ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ณ์ ์ด๋ฆ์ด ๋ ๊ธธ๋ฉด ์ฝ๋๊ฐ ํจ์ฌ ๋ ์ด๋ ค์์ง ๊ฒ์ ๋๋ค.
ํ๋ก๊ทธ๋จ ์ฝ๋ |
---|
|
"์, ์ฝ๊ธฐ ์ด๋ ต์ต๋๋ค!"
"๊ฑฑ์ ๋ง์ธ์. ์ด๊ฒ์ ์ค์ ํ๋ก๊ทธ๋จ์์ ํํ ๋ณผ ์ ์๋ ์ํฉ์ด๋ฏ๋ก ์ด ์ฝ๋๋ฅผ ์ข ๋ ๊ฐ๋จํ๊ณ ๊ฐ๊ฒฐํ๊ฒ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์๋ ค๋๋ฆฌ๊ณ ์ ํฉ๋๋ค.
String.format
"์ด String
ํด๋์ค์๋ ์ ์ format()
๋ฉ์๋๊ฐ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋ฌธ์์ด์ ๋ฐ์ดํฐ์ ๊ฒฐํฉํ๊ธฐ ์ํ ํจํด์ ์ง์ ํ ์ ์์ต๋๋ค. ๋ช
๋ น์ ์ผ๋ฐ์ ์ธ ๋ชจ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
String name = String.format(pattern, parameters);
์:
์ํธ | ๊ฒฐ๊ณผ |
---|---|
|
|
|
|
|
|
" ๋ฉ์๋์ ์ฒซ ๋ฒ์งธ ๋งค๊ฐ๋ณ์ ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์
ํด์ผ ํ๋ ์์น์ ํ์ ์ง์ ์(์: ๋ฐ ) format()
๋ผ๊ณ ํ๋ ํน์ ๋ฌธ์์ ํจ๊ป ์ํ๋ ๋ชจ๋ ํ
์คํธ๋ฅผ ํฌํจํ๋ ํ์ ๋ฌธ์์ด์
๋๋ค .%d
%s
"์ด ๋ฉ์๋๋ ์ด๋ฌํ ํ์ ์ง์ ์๋ฅผ ๋งค๊ฐ ๋ณ์ ๋ชฉ๋ก์ ํ์ ๋ฌธ์์ด์ ๋ฐ๋ฅด๋ ๋งค๊ฐ ๋ณ์๋ก format()
๋ฐ๊ฟ๋๋ค . ๋ฌธ์์ด์ ์ฝ์
ํ๋ ค๋ฉด ๋ฅผ ์๋๋ค. ์ซ์๋ฅผ ์ฝ์
ํ๋ ค๋ฉด ํ์ ์ง์ ์๋ ์
๋๋ค . ์:%s
%d
%s
%d
์ํธ | ๊ฒฐ๊ณผ |
---|---|
|
s ๋์ผํ๋ค"a=1, b=4, c=3" |
"๋ค์์ ํ์ ๋ฌธ์์ด ๋ด์์ ์ฌ์ฉํ ์ ์๋ ํ์ ์ง์ ์์ ์งง์ ๋ชฉ๋ก์ ๋๋ค.
์ง์ ์ | ์๋ฏธ |
---|---|
|
String |
|
์ ์: byte , short , int ,long |
|
์ค์: float ,double |
|
boolean |
|
char |
|
Date |
|
% ์ฑ๊ฒฉ |
"์ด๋ฌํ ์ง์ ์๋ ๋ฐ์ดํฐ์ ์ ํ์ ๋ํ๋ด์ง๋ง ๋ฐ์ดํฐ์ ์์๋ฅผ ๋ํ๋ด๋ ์ง์ ์๋ ์์ต๋๋ค. ๋ฒํธ๋ก ์ธ์๋ฅผ ๊ฐ์ ธ์ค๋ ค๋ฉด(๋ฒํธ๋ 1๋ถํฐ ์์) " ๋์ " % 1$ d "๋ฅผ ์์ฑ ํด์ผ ํฉ๋๋ค . %d ". ์:
์ํธ | ๊ฒฐ๊ณผ |
---|---|
|
s ๋์ผํ๋ค"a=13, b=12, c=11" |
%3$d
์ธ ๋ฒ์งธ ์ธ์, %2$d
๋ ๋ฒ์งธ ์ธ์, %d
์ฒซ ๋ฒ์งธ ์ธ์๋ฅผ ๊ฐ์ ธ์ต๋๋ค. ๋ฐ ํ์ ์ง์ ์๋ ๋๋์ ๊ฐ์ ์ง์ ์์ ์๊ด์์ด ์ธ์๋ฅผ ์ฐธ์กฐํฉ๋๋ค %s
.%d
%3$d
%2$s
์คํธ๋ง ํ
StringPool
"๋ฌธ์์ด ๋ฆฌํฐ๋ด๋ก ์ฝ๋์ ์ง์ ๋ ๋ชจ๋ ๋ฌธ์์ด์ ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ๋์ ์ด๋ผ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ ์ฅ๋ฉ๋๋ค . StringPool
๋ฌธ์์ด ์ ์ฅ์ ์ํ ํน์ ๋ฐฐ์ด์
๋๋ค. ๊ทธ ๋ชฉ์ ์ ๋ฌธ์์ด ์ ์ฅ์ ์ต์ ํํ๋ ๊ฒ์
๋๋ค.
"์ฒซ์งธ, ์ฝ๋์ ์ง์ ๋ ๋ฌธ์์ด์ ์ด๋๊ฐ์ ์ ์ฅ๋์ด์ผ ํ์ฃ ? ์ฝ๋๋ ๋ช ๋ น์ผ๋ก ๊ตฌ์ฑ๋์ง๋ง ๋ฐ์ดํฐ(ํนํ ํฐ ๋ฌธ์์ด)๋ ์ฝ๋์ ๋ณ๋๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํด์ผ ํฉ๋๋ค. ๋ฌธ์์ด ๊ฐ์ฒด์ ๋ํ ์ฐธ์กฐ๋ง ์ฝ๋์ ๋ํ๋ฉ๋๋ค.
"๋์งธ, ๋ชจ๋ ๋์ผํ ๋ฌธ์์ด ๋ฆฌํฐ๋ด์ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋ฒ๋ง ์ ์ฅํด์ผ ํฉ๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ์๋ ๋ฐฉ์์
๋๋ค. ํด๋์ค ์ฝ๋๊ฐ Java ์์คํ
์ ์ํด ๋ก๋๋๋ฉด ๋ชจ๋ ๋ฌธ์์ด ๋ฆฌํฐ๋ด์ด ์์ง ์๋ ๊ฒฝ์ฐ ์ ์ถ๊ฐ๋ฉ๋๋ค StringPool
. ์ด๋ฏธ ์กด์ฌํ๋ค๋ฉด ๋จ์ํ StringPool
.
๋ฐ๋ผ์ ์ฝ๋์ ์ฌ๋ฌ String ๋ณ์์ ๋์ผํ ๋ฆฌํฐ๋ด์ ํ ๋นํ๋ฉด ์ด๋ฌํ ๋ณ์์ ๋์ผํ ์ฐธ์กฐ๊ฐ ํฌํจ๋ฉ๋๋ค. ๋ฆฌํฐ๋ด์ ํ ๋ฒ๋ง ์ถ๊ฐ๋ฉ๋๋ค StringPool
. ๋ค๋ฅธ ๋ชจ๋ ๊ฒฝ์ฐ์ ์ฝ๋๋ ์ ์ด๋ฏธ ๋ก๋๋ ๋ฌธ์์ด์ ๋ํ ์ฐธ์กฐ๋ฅผ ๊ฐ์ ธ์ต๋๋ค StringPool
.
์๋ ๋ฐฉ์์ ๋๋ต ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ํธ | StringPoll ์์ |
---|---|
|
|
"์ด๊ฒ์ด a
๋ฐ b
๋ณ์๊ฐ ๋์ผํ ์ฐธ์กฐ๋ฅผ ์ ์ฅํ๋ ์ด์ ์
๋๋ค."
"๋ด๊ฐ ๋ชจ๋ ๊ฒ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ์ผ๋ฉด ์ข๊ฒ ๋ค.
intern()
๋ฐฉ๋ฒ.
"๊ฐ์ฅ ์ข์ ์ ์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ๋ชจ๋ ๋ฌธ์์ด์ ์ ์ถ๊ฐํ ์ ์๋ค๋ ๊ฒ์
๋๋ค StringPool
. ์ด๋ ๊ฒ ํ๋ ค๋ฉด String
๋ณ์์ intern()
๋ฉ์๋๋ฅผ ํธ์ถํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
"์ด ๋ฉ์๋๋ ์์ง ์๋ ๊ฒฝ์ฐ intern()
๋ฌธ์์ด์ ์ถ๊ฐํ๊ณ ๋ฌธ์์ด์ ๋ํ ์ฐธ์กฐ๋ฅผ ๋ฐํํฉ๋๋ค .StringPool
StringPool
StringPool
"๊ทธ๋ฆฌ๊ณ using the method ์ ๋ ๊ฐ์ ๋์ผํ ๋ฌธ์์ด์ด ์ถ๊ฐ๋๋ฉด ์ด๋ป๊ฒ ๋ ๊น์ intern()
?"
"์ด ๋ฉ์๋๋ ๋์ผํ ์ฐธ์กฐ๋ฅผ ๋ฐํํฉ๋๋ค. ์ฐธ์กฐ๋ก ๋ฌธ์์ด์ ๋น๊ตํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์:
์ํธ | ๋ฉ๋ชจ |
---|---|
|
|
|
|
์ด ๋ฐฉ๋ฒ์ ์์ฃผ ์ฌ์ฉํ์ง ์์ ๊ฒ์ ๋๋ค. ์ฆ, ์ฌ๋๋ค์ ๋ฉด์ ์์ ๊ทธ๊ฒ์ ๋ํด ๋ฌป๋ ๊ฒ์ ์ข์ํฉ๋๋ค.
"๊ทธ๋์ ๋ชจ๋ฅด๋ ๊ฒ๋ณด๋ค ์๋ ๊ฒ์ด ๋ซ์ต๋๋ค. ๊ณ ๋ง์์, ์๋ฆฌ!"
GO TO FULL VERSION