본문 바로가기
알고리즘/프로그래머스

[프로그래머스] 문자열 다루기 기본 (level 1)

by 코리늬 2018. 12. 7.
  • 문자열 다루기 기본

  • 문제 설명

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

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

입출력 예

sreturn
a234false
1234true

public boolean solution(String s){
boolean answer = true;
if(s.length() == 4 || s.length()==6) {
for (int i = 0; i < s.length(); i++) {
if (!Character.isDigit(s.charAt(i))) {
answer = false;
break;
}else {
answer = true;
}
}
}else{
answer = false;
}
return answer;
}

이 문제는 겉보기에는 상당히 쉬워보였지만 if문의 예외처리를 조금만 빼먹는다면 테스트 케이스에서 걸리기 때문에 신중하게 풀자는 의미로 정리를 하려한다.

문자열인지 판별하는 메소드가 있을거라고 생각되어 검색해 Character.isDigit메소드를 찾았다.

처음엔 for문만 작성해 if~else를 했다. -> 하지만 실패

문제를 다시 읽어보니 문자열의 길이에 대한 조건이 주어졌다. 앞에 if문으로 길이의 제한을 뒀다. -> 그래도 실패

엥 이게 왜 틀리는거지? 하고 좀 더 생각했다.

생각해보니 예외처리를 하나 빼먹었다.

바로 문자열의 길이가 4, 6이 아닌경우에 대한 예외처리를 하지 않았기 때문이다.

추가하니 성공

댓글