문제 설명
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
제한 사항
- s는 길이 1 이상, 길이 8 이하인 문자열입니다.
입출력 예
s return "a234" false "1234" true
class Solution {
public static boolean solution(String s) {
if(s.length() == 4 || s.length() == 6) {
try{
int num = Integer.parseInt(s);
return true;
}catch(NumberFormatException e) {
return false;
}
}
return false;
}
}
try{ 에러가 발생할 수 있는 코드 }
catch(예외) { 에러시 수행되는 코드 }
finally{ (에러 발생과 무관하게)무조건 수행되는 코드 }
다른 문제 풀 때
Integer.parseInt()
를 하도 많이 써서 바로 예외 처리 구문 돌려서 풀 생각부터 났는데, 프로그래머스 다른 사람 풀이 최상단에 유사한 풀이 방식이 올라와 있어서 뿌듯했다! 신기해~ 🤓🤓🤓
▼ 위의 정규표현식 활용 코드를 디벨롭 한 결과!
class Solution {
public boolean solution(String s) {
return s.matches("(^[0-9]{4}|{6}$)");
}
}
정규표현식으로 깔끔한 한 줄 코딩이 완성되었다!
파이썬 수업 들을 때 정규표현식에 대해 다시 배웠었는데,
역시 써버릇해야 내 것이 되는 것 같다.
앞으로 정규표현식을 잊지말고 적용해봐야겠다!
참고 자료