어제 오늘 내일

[Java Pattern] split() - 정규표현식으로 문자열 나누기 본문

IT/Java

[Java Pattern] split() - 정규표현식으로 문자열 나누기

hi.anna 2025. 10. 3. 07:43

문자열을 특정 구분자로 나누고 싶을 때 보통 String.split()을 많이 사용합니다. 하지만 더 복잡한 조건(여러 구분자, 정규표현식 기반 분리)이 필요하다면 Pattern.split()을 활용하는 것이 좋습니다.

 

1. split() 메소드 개요

  • 메소드 시그니처
  • public String[] split(CharSequence input) public String[] split(CharSequence input, int limit)
  • input : 분리할 문자열
  • limit : 분할할 횟수 제한 (양수: 최대 개수, 0: 제한 없음, 음수: 모든 결과 포함)

 

2. 기본 사용 예제

import java.util.regex.*;

public class PatternSplitExample {
    public static void main(String[] args) {
        String input = "apple, banana; orange|grape";

        Pattern pattern = Pattern.compile("[,;|]");
        String[] fruits = pattern.split(input);

        for (String fruit : fruits) {
            System.out.println(fruit.trim());
        }
    }
}

예제 설명

  1. Pattern.compile("[,;|]")
    → 쉼표(,), 세미콜론(;), 파이프(|)를 구분자로 사용하도록 정규식 패턴을 만듭니다.
  2. pattern.split(input)
    → 입력 문자열을 해당 구분자 기준으로 나눕니다.
  3. 실행 결과:
apple
banana
orange
grape

즉, 여러 구분자를 한 번에 처리할 수 있습니다.

 

 

3. limit 인자 사용 예제

import java.util.regex.*;

public class PatternSplitLimitExample {
    public static void main(String[] args) {
        String input = "one,two,three,four";

        Pattern pattern = Pattern.compile(",");
        String[] result = pattern.split(input, 2);

        for (String part : result) {
            System.out.println(part);
        }
    }
}

실행 결과

one
two,three,four

limit 값을 2로 주었기 때문에 최대 2개의 문자열만 반환되고, 나머지는 마지막 요소에 포함됩니다.

 

 

4. 활용 사례

  • CSV, 로그 파일 등 다양한 구분자로 이루어진 문자열 분리
  • 공백/특수문자 기반 문자열 토큰화
  • 사용자 입력값을 특정 패턴에 맞게 분리할 때

정리

Pattern.split() 메소드는 단순 구분자를 넘어 정규표현식을 활용한 문자열 분리에 강력한 기능을 제공합니다. 특히 여러 구분자를 동시에 처리해야 하는 경우 String.split()보다 훨씬 유연하게 사용할 수 있습니다.

반응형
Comments