문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 a234이면 False를 리턴하고 1234라면 True를 리턴하면 됩니다.
제한 사항
s
는 길이 1 이상, 길이 8 이하인 문자열입니다.s | return |
---|---|
a234 | false |
1234 | true |
앞선 길이 조건을 length() 메소드로 구하고, 문자열변환 메소드와 예외 처리(오늘 배운!!)를 통해 문제를 해결했다.
class Solution {
public boolean solution(String s) {
Boolean answer= false;
if(!(s.length()==4||s.length()==6)){
return answer;
}
try{
int a = Integer.parseInt(s);
answer = true;
} catch (NumberFormatException e){
answer = false;
} finally{
return answer;
}
}
}
풀고 나서 다른 사람들 풀이를 보니 나처럼 적은 사람이 가장 많았다! 솔직히 오늘 예외 처리 배워서 그냥 써먹어 본건데 이렇게 많이들 했을 줄이야..
다만 try-finally 내용을 if 절 안에 넣고, else절을 통해 return을 주고 있었다. 별 차이는 없다고 생각.. 한다!
class Solution {
public boolean solution(String s) {
int length = s.length();
if (length != 4 && length != 6)
return false;
for (int i = 0; i < length; ++i) {
char c = s.charAt(i);
if (c < '0' || c > '9')
return false;
}
return true;
}
}