[문제] 출처 https://programmers.co.kr/learn/challenge_codes/112
strToInt 메소드는 String형 str을 매개변수로 받습니다.
str을 숫자로 변환한 결과를 반환하도록 strToInt를 완성하세요.
예를들어 str이 1234
이면 1234를 반환하고, -1234
이면 -1234를 반환하면 됩니다.
str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다.
package programs;
public class StrToInt {
public int getStrToInt(String str) {
return Integer.parseInt(str);
}
//아래는 테스트로 출력해 보기 위한 코드입니다.
public static void main(String args[]) {
StrToInt strToInt = new StrToInt();
System.out.println(strToInt.getStrToInt("-1234"));
}
}
package programs;
public class StrToInt {
public int getStrToInt(String str) {
boolean Sign = true;
int result = 0;
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if (ch == '-')
Sign = false;
else if (ch != '+')
// 아스키 코드에서 문자 1은 49 0은 48입니다. 두문자를 빼면 1
// 아스키 코드에서 문자 2은 50 0은 48입니다. 두문자를 빼면 2
// result에서 rsult *10을 해준 이유는 자리수를 맞추기 위해서 입니다.
// 처음 1이 나올 때는 result깞이 0이기에 곱했을때 1은첫째자리에 위치하게 됩니다.
// 다음 result 값은 1이기에 곱하면 1*10하면 10+(2)를 더하면 12가되고
// 다음 result 값은 12이기에*10을통해 120+(3)을해서 조금씩 자릿수를 늘려나갈 수 있습니다.
result = result * 10 + (ch - '0');
}
return Sign ? 1 : -1 * result;
}
// 아래는 테스트로 출력해 보기 위한 코드입니다.
public static void main(String args[]) {
StrToInt strToInt = new StrToInt();
System.out.println(strToInt.getStrToInt("-1234"));
}
}