String.split() 대신 StringUtils.split() 사용하여 Leading Empty String 제거하기

주싱·2022년 3월 11일
0

Java

목록 보기
1/6

문제

String 클래스의 split() 메서드를 사용하여 아래의 코드를 수행하면 leading Empty String 이 배열의 첫번째 인덱스에 생성됩니다. String.split() 메서드는 구분자를 정규표현식으로 입력받아서 "[{,}]" 와 같은 문자열을 입력받습니다. 실제 구분자는 "{,}"라고 할 수 있습니다. 어찌되었든 저는 leading Empty String 이 없었으면 좋겠습니다.

@Test
void splitTest() {
    String sample = "{ABs,001,013}s";
    String[] fields = sample.split("[{,}]");
    System.out.println(Arrays.toString(fields));
}

[, ABs, 001, 013, s]

해결책

org.apache.commons.lang3 패키지에 있는 StringUtils 클래스가 제공하는 split() 메서드를 활용하면 원하는 결과를 얻을 수 있습니다. StingUtils.split() 메서드는 구분자를 단순한 문자집합으로 입력받는 차이점이 있네요.

@Test
void splitTest() {
    String[] split = StringUtils.split("{ABs,001,013}s", "{,}");
    System.out.println(Arrays.toString(split));
}

[ABs, 001, 013, s]

profile
소프트웨어 엔지니어, 일상

0개의 댓글