728x90
반응형

보완 전 코드

 

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

문제 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. 예를 들어 str이 "1234"이면 1234를 반환하고, "-1234"이면 -1234를 반환하면 됩니다. str은 부호(+,-)와 숫자로만 구성되어 있

deliciouscode.tistory.com

보완 전에는 문자열을 문자화시키는 메소드(charAt)만 알고 있었다.

그래서 모든 문자열을 한 글자씩 문자화 시켜서 자릿수만큼 10을 반복하여 곱한 값을 모두 더해 리턴하는 코드를 작성하였다.

하지만 HRD 수업에서 메소드를 배우면서, 이전에 작성한 코드보다 더 짧고 간결한 코드를 작성할 수 있다는 생각이 들어 새로운 코드를 작성하였다.

 

 

문제

문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.

예를 들어 str이 "1234"이면 1234를 반환하고, "-1234"이면 -1234를 반환하면 됩니다. str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다.

 

▶ 제한사항

  • s의 길이는 1 이상 5이하입니다.
  • s의 맨앞에는 부호(+, -)가 올 수 있습니다.
  • s는 부호와 숫자로만 이루어져있습니다.
  • s는 "0"으로 시작하지 않습니다.

 

 

1. Solution 코드

class Solution {
    public int solution(String s) {
        int num=0,m=0;
        if(s.charAt(0)=='-'){
            m=1; //문자열의 맨 앞 부분이 마이너스로 시작함을 알려줌
            s=s.replace("-","");
        }
        else if(s.charAt(0)=='+')
            s=s.replace("+","");
        
        num = Integer.parseInt(s);
        
        
        if(m==1)
            return -num;
        else
            return num;
    }
}
  • 문자열의 맨 앞 부분이 "-"나 "+"로 시작될 수 있기 때문에 replace를 이용하여 숫자로만 구성된 문자열으로 만들어준다.
  • 숫자로 구성된 문자열을 정수형으로 바꾸어 반환한다.
  • 문자열의 맨 앞 부분이 "-"로 시작하면 m의 값을 1으로 바꾸어 음수임을 알 수 있다.

 

 

2. Solution 코드

class Solution {
    public int solution(String s) {
        return Integer.parseInt(s);
    }
}
  • Integer.parseIn 을 사용하면 문자열 맨 앞의 "-"가 음수 값으로 적용되는 것을 알게 되었다.
728x90
반응형

'문제 > JAVA' 카테고리의 다른 글

[JAVA] 하샤드 수  (0) 2023.05.30
[JAVA] 정수 제곱근 판별  (0) 2023.05.30
[JAVA] 문자열을 정수로 바꾸기  (2) 2023.05.29
[JAVA] 문자열 내 p와 y의 개수  (0) 2023.05.29
[JAVA] 자연수 뒤집어 배열로 만들기  (0) 2023.05.29

+ Recent posts