기존의 요구사항
기존에는 콤마(,)와 콜론(:)을 구분자로 사용했다고 가정하자.
그렇다면, 아래와 같은 메서드를 구현할 수 있다.
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을 의미한다.
'Java' 카테고리의 다른 글
[Java] 단일 책임 원칙(SRP)을 지키는 방법 / 모든 원시 값과 문자열을 포장 (0) | 2023.04.25 |
---|---|
[Java] 요구사항이 자주 변경되는 코드에 대한 리팩토링 / 전략 패턴 ( Strategy Pattern ) / 의존관계 주입(DI) (0) | 2023.04.24 |
[Java] 왜 DI(Dependency Injection)가 필요한가? (0) | 2023.04.10 |
[Java] MVC 프레임워크에서 @RequestMapping 애노테이션 설정을 활용한 매핑하는 클래스 뜯어보기 (0) | 2023.04.04 |
[Java] @Controller 애노테이션 설정 클래스 스캔하는 ControllerScanner 클래스 뜯어보기 (0) | 2023.04.04 |
댓글