[프로그래머스/java] 문자열 다루기 기본

리트리버J

·

2021. 1. 8. 02:28

728x90

문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 a234이면 False를 리턴하고 1234라면 True를 리턴하면 됩니다.

<나의 풀이>

1. (int)char를 하게 되면 아스키코드로 변형이 된다.

2. 아스키코드 48~57은 숫자이다.

1
2
3
4
5
6
7
8
9
10
class Solution {
    public boolean solution(String s) {
        if(!(s.length() == 4 || s.length() == 6)) return false;
        for(int i=0; i<s.length(); i++) {
            if(!((int)s.charAt(i) >= 48 && (int)s.charAt(i) <= 57)) return false;
        }
        
        return true;
    }
}
cs

 

<사이트 풀이>

1. Integer.parseInt()의 파라미터로 숫자가 아닌 값이 들어오면

NumberFormatException이 발생한다.

이것을 try catch 구문으로 잡아준다!!

 

좋은 아이디어다!

1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution {
  public boolean solution(String s) {
      if(s.length() == 4 || s.length() == 6){
          try{
              int x = Integer.parseInt(s);
              return true;
          } catch(NumberFormatException e){
              return false;
          }
      }
      else return false;
  }
}
cs

 

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

728x90