CS/프로그래머스

문제 // Programmers // LEVEL1 // String // 문자열 다루기 기본 // Java

문스코딩 2018. 9. 11. 19:10

프로그래머스

문자열 다루기 기본

업데이트 :: 2018.09.11



문제

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

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

코드

1차풀이

public class Programmers_9 {
    public boolean solution(String s) {
        // s - 4 or 6
        // s - 모두숫자
        if(s.length() != 4 && s.length() != 6) {
            return false;
        }
        try {
            Integer.parseInt(s);
            return true;
        } catch (NumberFormatException e) {
            return false;
        }
    }
}

  • parseInt or valueOf의 Exception 활용

2차풀이

public class Programmers_9 {
  public boolean solution(String s) {
       if(s.length() != 4 && s.length() != 6) {
           return false;
       }
       char[] charArray = s.toCharArray();
       for(char c : charArray) {
           if(!Character.isDigit(c))
               return false;
       }
       return true;
   }
}
  • Exception 없게 처리
  • Character의 isDigit() 메소드 사용

예제

정규식을 이용한 풀이

class Solution {
  public boolean solution(String s) {
        if (s.length() == 4 || s.length() == 6)
          return s.matches("(^[0-9]*$)");
        return false;
  }
}

Created by MoonsCoding

e-mail :: jm921106@gmail.com

반응형