[프로그래머스] Level1.문자열 다루기 기본

Benjamin·2023년 3월 15일
0

프로그래머스

목록 보기
44/58

내 풀이

class Solution {
    public boolean solution(String s) {
        boolean answer = true;
        char[] temp = s.toCharArray();
        if(s.length() != 4 && s.length() != 6) return false;
        for(int i=0; i<temp.length; i++) {
            if(Character.isLetter(temp[i])) {
                answer= false;
                break;
            }
        }
        return answer;
    }
}

다른 풀이 1

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;
  }
}

예외처리를 이용해서 문제를 풀 수도 있다.
생각도 못했다.

다른 풀이 2

import java.util.*;

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

정규표현식을 이용할 수도 있다.

다른 풀이3

class Solution {
  public boolean solution(String s) {
    return (s.length() != 4 && s.length() != 6) || (s.split("[0-9]").length > 0) ? false:true;
  }
}

정규표현식을 이용하는데, 조금 더 간단히 이용해서 split에 이용할수도있다.

숫자로만 구성되어있다면, 숫자기준으로 split할 경우 결과 배열에 들어가는건 아무것도 없을거다. 따라서 결과 배열의 길이가 0이된다!

0개의 댓글