문홍의 공부장

[Java] 프로그래머스 Lv.1 문자열 다루기 기본 풀이 본문

알고리즘/프로그래머스

[Java] 프로그래머스 Lv.1 문자열 다루기 기본 풀이

moonong 2020. 2. 6. 23:06
반응형

문제 설명

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

제한 사항

s는 길이 1 이상, 길이 8 이하인 문자열입니다.

나의 풀이

얼마 전에 문제 풀다가 정규표현식을 사용했어서, 여기서도 자연스럽게 정규표현식으로 숫자 여부를 확인하면 되겠다고 생각이 떠올랐다.
정규표현식은 쓸 때마다 헷갈려서, 이번 기회에 한 번 정리를 하고 넘어가야겠다.

1
2
3
4
5
6
7
8
public boolean solution(String s) {
      if(s.length() == 4 || s.length() == 6) {
         return s.matches("^[0-9]*$");
      }
      
      return false
      
    }
cs

다른 사람의 풀이

정수형으로 파싱했을 때 NumberFormatException 이 나오는지에 따라 boolean 값을 다르게 리턴했다. 예외처리를 이렇게 활용하다니 좋은 아이디어인 것 같다.

1
2
3
4
5
6
7
8
9
10
11
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
반응형