문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
s는 길이 1 이상, 길이 8 이하인 문자열입니다.
s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.
a | return |
---|---|
"a234" | false |
"1234" | true |
길이가 4또는 6인지 확인하기 아니면 false
문자열의 요소를 돌면서 아스키코드 값이 숫자 이외의 값이면 false
class Solution {
public boolean solution(String s) {
boolean answer = true;
if (s.length() == 6 || s.length() == 4){
for (char i : s.toCharArray()){
if ((i >= 65 && i <= 90) || (i >= 97 && i <= 122)){
answer = false;
}
}
}else answer = false;
return answer;
}
}
s를 Integer.parseInt(s)를 이용해서 int로 바꾸는데 이때 문자열에 숫자 이외의 값이 들어가 있으면 NumberFormatException이 발생함으로 캐치하면 false를 반환한다
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;
}
}
정규식을 이용해서 0부터 9까지만 포함되는지 확인한다
class Solution {
public boolean solution(String s) {
if (s.length() == 4 || s.length() == 6) return s.matches("(^[0-9]*$)");
return false;
}
}