Java
[Java] Matcher 클래스를 사용한 커스텀 구분자 지정
bkuk
2023. 4. 18. 22:39
기존의 요구사항
기존에는 콤마(,)와 콜론(:)을 구분자로 사용했다고 가정하자.
그렇다면, 아래와 같은 메서드를 구현할 수 있다.
private static String[] split(String text) {
return text.split(",|:");
}
요구사항 변경
하지만, 요구사항이 사용자가 아래와 같이 "//"와 "\n" 문자 사이에 커스텀 구분자를 지정할 수 있다고 변경되었다고 한다면?
그렇다면 split() 메서드를 수정해야한다.
//;\n1;2;3
아래와 같이 수정할 수 있다.
private static String[] split(String text) {
Matcher m = Pattern.compile("//(.)\n(.*)").matcher(text);
if( m.find() ) {
String customDelimeter = m.group(1);
return m.group(2).split(customDelimeter);
}
return text.split(",|:");
}
각각
group(1)은 "(.)" .을 String을, group(2)은 "(.*)"을 String을 의미한다.