문제 풀이
우선 문자열이 숫자로만 구성되어야 하므로 [0-9]를 이용할 수 있습니다. 여기에 길이가 4 또는 6이라는 조건을 추가하면 [0-9]{4}|[0-9]{6}과 같은 정규표현식이 만들어집니다. 이를 이용하여 문자열을 검사하고 그 결괏값을 반환하면 됩니다.
전체 코드
4장/문자열_다루기.java
public class Solution {
public boolean solution(String s) {
return s.matches("[0-9]{4}|[0-9]{6}");
}
}
이 문제를 정규표현식을 사용하지 않고 다음과 같이 내장 라이브러리만 이용하여 구현할 수도 있습니다.
전체 코드
4장/문자열_다루기_라이브러리.java
public class Solution {
public boolean solution(String s) {
if (s.length() != 4 && s.length() != 6) return false;
for (char c : s.toCharArray()) {
if (!Character.isDigit(c)) return false;
}
return true;
}
}
이처럼 정규표현식을 이용하면 여러 줄에 걸친 조건 검사를 매우 간단하게 처리할 수 있습니다.