Coding Planet
4. ๋จ์ด ๋ค์ง๊ธฐ - StringBulider.reverse()/String.valueOf() / String๊ณผ StringBuilder์ ์ฐจ์ด์ ๋ณธ๋ฌธ
๐ ์ฝ๋ฉํ
์คํธ/์๊ณ ๋ฆฌ์ฆ
4. ๋จ์ด ๋ค์ง๊ธฐ - StringBulider.reverse()/String.valueOf() / String๊ณผ StringBuilder์ ์ฐจ์ด์
jhj.sharon 2023. 5. 4. 17:51๋ฐ์ํ
1. ๋ฌธ์ ์๊ตฌ์ฌํญ
- ์ฃผ์ด์ง ๋จ์ด๋ฅผ ๋ค์ง์ด์ ๋ฌธ์๋ฅผ ์ญ์์ผ๋ก ์ถ๋ ฅํ๋ค.
2. ๋ฌธ์ ํ์ด์ ์ฌ์ฉ๋ ๋ฉ์๋: StringBulider.reverse()
- StringBulider์ reverse() ๋ฉ์๋๋ ๋ฌธ์์ด์ ๋ค์ง์ด ์ค๋ค.
- String tmp = new StringBulider.reverse(x).toString();
- ์ ์ฝ๋๋ String x์ ๋ฌธ์์ด์ ๋ค์ง๊ณ ์ด๋ฅผ ๋ค์ String tmp์ ์ ์ฅํ๋ ์ฝ๋์ด๋ค.
- ๋ค๋ง, ์์์ ๋ณด๋ ๊ฒ์ฒ๋ผ String๊ณผ StringBuilder๋ ๋ค๋ฅธ ์๋ฃํ ํ์ ์ด๊ธฐ ๋๋ฌธ์ toString์ ํตํด String์ผ๋ก ๋ณํํด์ ๋ด์์ค์ผ ํ๋ค.
2. ๋ฉ์๋ ์์ด ๋ ผ๋ฆฌ๋ก๋ง ํธ๋ ๋ฒ
- ๋ฌธ์์ด์ ์ผ๋จ ๋ฌธ์ ๋ฐฐ์ด๋ก ๋ง๋ค์ด์ผ ํ๋ค. -> Char[] s = x.toCharArray();
- ๋ฌธ์ ๋ฐฐ์ด s๋ ์ธ๋ฑ์ค๊ฐ ์กด์ฌํ๊ฒ๋๋๋ฐ ์ด ์ธ๋ฑ์ค์ ์์น๋ฅผ ๋ฐ๊พธ์ด์ ํ ์์๋ค.
- ๋ฌธ์์ด ๋ฐฐ์ด str์ ๊ฐ ์์ x๋ฅผ ์ํํ๋ฉด์, ๊ฐ ์์๋ฅผ ๋ฌธ์ ๋ฐฐ์ด๋ก ๋ณํํ ํ ๋ฌธ์์ด์ ๋ค์ง๋ ์์ ์ ์ํํ๋ค. ์ด๋ lt์ rt๋ ๋ฌธ์์ด์ ๋ค์ง๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์ธ๋ฑ์ค ๋ณ์๋ก, lt๋ ์ผ์ชฝ ๋ ์ธ๋ฑ์ค๋ฅผ ๋ํ๋ด๋ฉฐ rt๋ ์ค๋ฅธ์ชฝ ๋ ์ธ๋ฑ์ค๋ฅผ ๋ํ๋ธ๋ค. lt์ rt๋ ๊ฐ๊ฐ ๋ฌธ์์ด์ ์์ชฝ ๋์์๋ถํฐ ์์ํ์ฌ, ์๋ก ์์น๋ฅผ ๊ตํํ๋ฉด์ ๋ฌธ์์ด์ ๋ค์ง๋๋ค.
- While(lt<rt) ์กฐ๊ฑด์ ํตํด ์์น ๊ตํ์ ๋ฉ์ถ ์ ์๋ค. ํ์ ์ผ๊ฒฝ์ฐ rt=lt๊ฐ ๋๋ฉด์ ๋ฉ์ถ๊ณ , ์ง์ ๋ฌธ์์ด์ผ ๊ฒฝ์ฐ lt>rt ๋๋ฉด์ false๊ฐ ๋์ ๋ฉ์ถ๋ค.
- String.valueOf()๋ฅผ ํตํด ๋ฌธ์๋ฐฐ์ด์ ๋ฌธ์์ด๋ก ๋ฐ๊ฟ์ค๋ค. ์ด๋ valueOf()๋ ์ธ์คํด์ค๋ฅผ ์์ฑํ์ง ์๊ณ ํด๋์ค ์์ฒด์ ์ง์ ์ ๊ทผํ์ฌ ํธ์ถํ ์ ์๋ 'static' ๋ฉ์๋์ด๋ค. valueOf() ๋ฉ์๋๋ ์ธ์๋ก ์ ๋ฌ๋ ๊ฐ์ ๋ฌธ์์ด๋ก ๋ณํํ์ฌ ๋ฐํํ๋ ์ญํ ์ ํ๋๋ฐ, ์ด ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด String ๊ฐ์ฒด ์์ฑ์์ด ๊ฐ์ ๋ฌธ์์ด๋ก ๋ณํ์ํฌ ์ ์๋ค.
for(String x : str) {
char[] s = x.toCharArray();
int lt=0, rt=x.length()-1;
while(lt<rt) {
char tmp = s[lt];
s[lt] = s[rt];
s[rt] = tmp;
lt++;
rt--;
}
String tmp =String.valueOf(s); // ๋ค์ง์ ๋ฌธ์๋ฐฐ์ด์ ๋ค์ ๋ฌธ์์ด๋ก ๋ฐ๊ฟ์ค๋ค.
}
3. String๊ณผ StringBuilder์ ์ฐจ์ด์
- Java์์ String๊ณผ StringBuilder๋ ๋ ๋ค ๋ฌธ์์ด์ ์ฒ๋ฆฌํ๋ ํด๋์ค์ด๋ค.
- ๋ค๋ง, String์ ๋ถ๋ณ(immutable) ํด๋์ค์ด๋ค. ๋ฐ๋ผ์ ํ๋ฒ ์์ฑ๋ 'String' ๊ฐ์ฒด๋ ์์ ํ ์ ์๋ค. String์ ์์ ํ ๊ฒฝ์ฐ ๊ฐ์ฒด ์์ฒด๊ฐ ๋ณํํ๋ ๊ฒ์ด ์๋๋ผ ์๋ก์ด String ๊ฐ์ฒด๊ฐ ์์ฑ๋๋ ๊ฒ์ด๋ค. ์ด๋ฌํ ํน์ฑ์ผ๋ก ์ธํด String์ ์์ ์ด ์ฆ๋ค๋ฉด ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ๋์ด๋๊ณ ์ฑ๋ฅ์ด ์ ํ๋ ์ ์๋ค.
- ๋ฐ๋ฉด, StringBuilder๋ ๊ฐ๋ณ(mutable) ํด๋์ค์ด๋ค. StringBuilder ๊ฐ์ฒด๋ ์์ฑํ ์ดํ์๋ ๊ฐ์ฒด ๋ด์ ๋ฌธ์์ด์ ์์ ๋กญ๊ฒ ๋ณ๊ฒฝํ ์ ์๋ค. ๋ฐ๋ผ์ ๋ฌธ์์ด ์์ ์ด ์ฆ์ ๊ฒฝ์ฐ๋ StringBuilder๋ฅผ ์ฐ๋ ๊ฒ์ด ์ ํฉํ๋ค.
- ๊ทธ๋ฌ๋ StringBuilder๋ ๋๊ธฐํ๋ฅผ ์ง์ํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ฉํฐ์ค๋ ๋ ํ๊ฒฝ์์ ์์ ํ์ง ์๋ค.
- ๊ฒฐ๋ก ์ ์ผ๋ก ๋ฌธ์์ด์ ์์ ํ์ง ์๊ณ ๋จ์ํ ์ฐธ์กฐ๋ง ํ ๊ฒฝ์ฐ์๋ String๋ฅผ ์ฌ์ฉํ์ ๋ฌธ์์ด์ ๋ง์ด ์์ ํด์ผํ๋ ๊ฒฝ์ฐ์๋ StringBuilder๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
๋ฐ์ํ
'๐ ์ฝ๋ฉํ ์คํธ > ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Comments