문제/JAVA

[JAVA] 문자열을 정수로 바꾸기

리드미. 2023. 5. 29. 22:51
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
반응형