문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
s | return |
---|---|
"a234" | false |
"1234" | true |
class Solution {
public boolean solution(String s) {
boolean answer = true;
int i = s.length();
s = s.replaceAll("[a-zA-Z]", "");
if(i == 4 || i == 6 ) {
if(s.length() < i){
answer = false;
}else if(s.length() == i){
answer = true;
}
}else {
answer = false;
}
return answer;
}
}
우선, 정수형 i를 문자열 s의 길이로 설정한다.
그리고 모든 알파벳을 replace
를 통해 제거한다.
s는 길이가 4 또는 6이라 하였으므로 i는 4 또는 6이다. 그렇지 않을 시에는 answer에 false를 저장해 주고, i가 4 또는 6일 시에는 알파벳을 제거한 s의 길이와 비교해준다. 만약 s의 길이가 i 와 같다면 s는 알파벳이 제거되지 않았으며 원래의 문자를 보존하고 있는 것이므로 모두 숫자로 이루어진 문자열이 된다. 따라서 answer에 true를 저장하고 s의 길이가 i와 다르다면 문자열에서 알파벳이 제거되었다는 뜻이므로 원래의 문자는 알파벳을 포함하고 있어 false를 저장해 준 후 answer를 반환한다.