728x90
반응형
아래 코드를 보완한 코드
[JAVA] 문자열을 정수로 바꾸기 보완
보완 전 코드 [JAVA] 문자열을 정수로 바꾸기 문제 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. 예를 들어 str이 "1234"이면 1234를 반환하고, "-1234"이면 -1234를 반환하면 됩
deliciouscode.tistory.com
문제
문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.
예를 들어 str이 "1234"이면 1234를 반환하고, "-1234"이면 -1234를 반환하면 됩니다. str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다.
▶ 제한사항
- s의 길이는 1 이상 5이하입니다.
- s의 맨앞에는 부호(+, -)가 올 수 있습니다.
- s는 부호와 숫자로만 이루어져있습니다.
- s는 "0"으로 시작하지 않습니다.
Solution 코드
class Solution {
public int solution(String s) {
int answer = 0;
int len = s.length();//단위를 알기 위한 변수
int i=0;
if(s.charAt(i)=='-' || s.charAt(i)=='+'){
len--;
i=1;
}
for(;i<s.length();i++){
int c = Character.getNumericValue(s.charAt(i));
int temp=c;
for(int j=1;j<len;j++)
temp*=10;
answer+=temp;
len--;
}
if(s.charAt(0)=='-')
return -answer;
else
return answer;
}
}
- 문자열 s의 맨 앞의 문자가 '-'이거나 '+'일 때 맨 첫 번째 숫자는 1 번째부터 시작한다.(i=1) 또한, s가 "-1000"일 때 s.length();의 값은 5이지만 -는 숫자로 포함시키지 않기 때문에 len의 값에 1을 빼 4자리임을 알린다.
- 모든 문자열을 한 글자씩 문자화 시키고 자릿수만큼 10을 반복하여 곱한 값을 answer 변수에 모두 더해 리턴한다. 만약 "1000" 일 때 첫 번째 글자는 1이 아닌 1000으로 저장되야 한다. 이 때, len을 이용하여 자릿수만큼 10을 반복하여 곱하면 1이 아닌 1000으로 저장할 수 있다.
728x90
반응형
'문제 > JAVA' 카테고리의 다른 글
| [JAVA] 하샤드 수 (0) | 2023.05.30 |
|---|---|
| [JAVA] 정수 제곱근 판별 (0) | 2023.05.30 |
| [JAVA] 문자열 내 p와 y의 개수 (0) | 2023.05.29 |
| [JAVA] 자연수 뒤집어 배열로 만들기 (0) | 2023.05.29 |
| [JAVA] x만큼 간격이 있는 n개의 숫자 (0) | 2023.05.29 |