Coding Planet
level 1. ๋ฌธ์์ด์ ์ ์๋ก ๋ฐ๊พธ๊ธฐ/ ์๋ฐ ๋ณธ๋ฌธ
๐ ์ฝ๋ฉํ
์คํธ/ํ๋ก๊ทธ๋๋จธ์ค
level 1. ๋ฌธ์์ด์ ์ ์๋ก ๋ฐ๊พธ๊ธฐ/ ์๋ฐ
jhj.sharon 2023. 3. 28. 03:11๋ฐ์ํ
public class StrToInt {
public int getStrToInt(String str) {
boolean sign = true;
int value = 0;
for (char ch : str.toCharArray()) {
if (ch == '-') {
plus = false;
} else {
int num = ch - 48;
value = num+value*10;
}
}
return (plus==true)? value : -1*value;
}
}
- ์ฌ์ค ์ด ๋ฌธ์ ๋ Integer.parseInt()๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋ณ๋ค๋ฅธ ์์์ด ํ์ ์์ด ๊ฐ๋จํ ํ๋ฆฌ๋ ๋ฌธ์ ์ด๋ค.
- ๊ทธ๋ฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ๊ณต๋ถํ๋ค๋ ์๋ฏธ์์ ๋ ผ๋ฆฌ์ ๋ฐ๋ผ ์ฝ๋๋ฅผ ์งฐ๊ณ ์ญ๋๊ธ์ผ๋ก ์ค๋ ์๊ฐ์ด ๊ฑธ๋ ธ๋ค.
- ๋จผ์ ๋ถํธ๋ + - ๋จ ๋๊ฐ์ ๊ฐ๋ง ๊ฐ์ง๋ฏ๋ก boolean ์๋ฃํ์ผ๋ก ์ค์ ํ๋ค. +๋ true, -๋ false
- toCharArray()๋ String์ char[]๋ก ๋ฐํํด์ฃผ๋ ๋ฉ์๋์ด๋ค. ์ด ๋ฉ์๋๋ฅผ ๊ฒ์ํด์ ์ฐพ์๋ด๊ธฐ ์ ์๋ CharAt์ ํ๋ํ๋ ๋ฐ๋ณต๋ฌธ ๋๋ฆฌ๋ ๋ ธ๊ฐ๋ค๋ฅผ ํ๊ณ ์์๋ค. ๐คฆโ๏ธ
- ํฅ์๋ for๋ฌธ์ ์ด์ฉํด์ char[]์ ํ๋ํ๋ ๋๋ ค์ฃผ๊ณ - ๋ถํธ๊ฐ ์์ ๊ฒฝ์ฐ ๋ถํธ๋ false๋ก ์ค์ ํด์ค๋ค. ๋ง์ฝ -๋ถํธ๊ฐ ์๋ ์์๋ผ๋ฉด ๋ฌธ์(ch)์์ 48์ ๋นผ์ค์ ์ซ์๊ฐ์ผ๋ก ๋ํ๋ด์ค๋ค.
- -> Character์ ์ฐ์ฐ์ ํ ๊ฒฝ์ฐ Character๋ ์ด์ ๋์๋๋ ASCII ๊ฐ์ผ๋ก ๋ฐ๋์ด ์ฐ์ฐ์ ํ๋ค. ์ด ๋ ๋ฌธ์๋ก ์ธ์๋๋ 0~9๋ ASCII ์ญ์ง๋ฒ์ผ๋ก 48~57์ธ๋ฐ ์ฌ๊ธฐ์ ๋ฌธ์ 0์ ํด๋นํ๋ 48์ ๋นผ์ค ๊ฒฝ์ฐ ํด๋น ๊ฐ์ '์ซ์'๊ฐ ๋๋ค. ์ค๋ช ์ด ๋งค๋๋ฝ์ง ์์๋ฐ ์๋ ASCII ์ฝ๋๋ฅผ ํ๋ฉด ๋๋ต์ ์ผ๋ก ์ดํด๊ฐ ๊ฐ ๊ฒ์ด๋ค.
- ์๋ฅผ ๋ค์ด ASCII Code์์ ๋ฌธ์ 1์ 10์ง์๋ก 48์ด๋ค. ๋ฌธ์๋ฅผ ๋์์ผ๋ก ํ๋ ์์ ๊ฐ์ ์ฝ๋์์ '1' - '0' ํน์ '1'-48์ ์ซ์ 1์ด ๋๋ ๊ฒ์ด๋ค.
- ์ด์ intํ์ผ๋ก ๋ณํ๋ ์ซ์๋ค์ ๊ฐ ์๋ฆฌ์์ ๋ง๊ฒ ์ค์ ํด์ค์ผ ํ๋ฏ๋ก value*10์ ๊ณ์ฐ์ ์๋ฆฟ์๋ฅผ ํ๋์ฉ ์์ผ๋ก ๋ฐ์ด์ค๋ค.
- ์๋ฅผ ๋ค์ด 123์ด๋ผ๋ ๋ฌธ์๊ฐ ๋ค์ด๊ฐ ๊ฒฝ์ฐ for๋ฌธ์ด ์์๋๋ก ๋ ๋ ๋ง๋ค value ๋ 1, 12, 123์ผ๋ก ์กฐ์ ๋๋ค.
- ๋ง์ง๋ง์ผ๋ก ์ผํญ์ฐ์ฐ์๋ก ์ซ์์ ๋ถํธ๋ฅผ ๊ณ ๋ คํด ์ต์ข return๊ฐ์ ์ ํ๋ฉด ๋๋ค ~~~ ๋!
๐ฑ ์๊ฐ์ด ๋ฌด์ฒ ์ค๋ ์์๋์์ง๋ง ๋๋ถ์ Integer.parseInt()๋ฉ์๋๊ฐ ์ด๋ค์์ผ๋ก ๊ตฌํ๋์ด์๋์ง ์์๋ณผ ์ ์๋ ์ข์ ๊ธฐํ์๋ค.
๋ฐ์ํ
'๐ ์ฝ๋ฉํ ์คํธ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
level 1. x๋งํผ ๊ฐ๊ฒฉ์ด ์๋ n๊ฐ์ ์ซ์ / java (0) | 2023.03.29 |
---|---|
level 1. ํ๊ท ๊ตฌํ๊ธฐ / java (0) | 2023.03.28 |
level 1. ์ ์ ์ ๊ณฑ๊ทผ ํ๋ณ / ์๋ฐ /Math.pow(), Math.sqrt() (0) | 2023.03.28 |
level 1. ์ฝ์์ ํฉ / ์๋ฐ (0) | 2023.03.28 |
level 1.์ง์์ ํ์ / ์๋ฐ / ์ผํญ์ฐ์ฐ์ (0) | 2023.03.28 |
Comments