문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
- s는 길이 1 이상, 길이 8 이하인 문자열입니다.
- s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.
s return "a234" false "1234" true
class Solution {
public boolean solution(String s) {
if(s.length() == 4 || s.length() == 6){
for(char c : s.toCharArray()){
if(!Character.isDigit(c)){
return false; // 숫자만 포함 X
}
}
return true; // 숫자만 O
}
return false; // 길이 4 또는 6 아니면 false
}
}
class Solution {
public boolean solution(String s) {
boolean answer = true;
if (s.length() != 4 && s.length() != 6) return false;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) < '0' || s.charAt(i) > '9') return false;
}
return answer;
}
}
다른 사람들 풀이 보니까 다들 나처럼 == 4 || == 6을 하는게 아니라 != 4 || != 6 부정문을 써서 return true를 하던데 그게 좀 더 안헷갈리고 훨씬 나을 것 같다고 느꼈다. 저거 하면서도 맨 안쪽 if문에 else { return true를 하니까 코드 실행 했을 때 통과했지만 제출을 하니까 실패한 경우가 굉장히 많았다. 그래서 바깥에 하는 경우가 맞지만 굉장히 헷갈린다..🥲 try~catch문도 있던데 공부를 해야겠다.
class Solution {
public boolean solution(String s) {
boolean answer = true;
if(s.length() == 4 || s.length() == 6) {
for(int i = 0; i < s.length(); i++){
if(s.charAt(i) < '0' || s.charAt(i) > '9' ){
answer = false;
}
}
}else {
answer = false;
}
return answer;
}
}
나는 중첩 if문에 else{ 를 덧붙이고 싶었는데 실패했다. 만약 하려면 이렇게 하는게 좋을 듯 하다!!! 헷갈림 해소 완!!