Java/문법

String.split() 문자열 자르기, 나누기

가지코딩 2025. 4. 22. 13:49

문자열을 나누는 대표적인 방법 String.split() 에 대해 알아보자


기본 문법

  • regex: 문자열을 나눌 기준이 되는 정규 표현식
  • limit: 결과 배열의 길이 제한과 빈 문자열 포함 여부를 제어
String[] split(String regex)
String[] split(String regex, int limit)

split(String regex)

  • 문자열을 정규 표현식(regex) 을 기준으로 나누어 배열로 반환한다.
  • 구분자가 연속으로 나타날 경우, 빈 문자열도 배열에 포함된다.
    • 정규 표현식에서 + 사용하면, 빈 문자열을 포함하지 않을 수 있다.
    • filter() 를 사용하여 빈 문자열을 제거하는 방법도 있다.
  • 단, 문자열 끝에 있는 빈 문자열 ""은 제외된다.
    • 내부적으로 split(regex, 0)이 호출되기 때문
String str = "a,b,c,";
String[] result = str.split(",");
System.out.println(Arrays.toString(result)); // [a, b, c]
String str = "apple,,banana,,,grape";
String[] result = str.split(",+");  // 하나 이상의 쉼표를 기준으로 나눔
System.out.println(Arrays.toString(result)); // [apple, banana, grape]

split(String regex, int limit)

limit 값설명
> 0 최대 limit 개수의 요소 반환. 마지막 요소에 나머지 문자열 포함
0 뒤쪽 빈 문자열 제거
< 0 모든 결과 포함 (빈 문자열도 포함)

 

 

limit 이 양수인 경우

  • 최대 limit 개의 요소로 나눈다. 마지막 요소에 나머지가 포함된다.
String str = "a,b,c,d";
String[] result = str.split(",", 3);
System.out.println(Arrays.toString(result)); // [a, b, c,d]

 

 

limit 이 양수인 경우

  • 뒤쪽 빈 문자열 제거된다.
String str = "a,b,c,";
String[] result = str.split(",", 0);
System.out.println(Arrays.toString(result)); // [a, b, c]

 

 

limit 이 음수인 경우

  • 모든 결과가 반환되며, 뒤쪽의 빈 문자열도 유지된다.
String str = "a,b,c,";
String[] result = str.split(",", -1);
System.out.println(Arrays.toString(result)); // [a, b, c, ""]

'Java > 문법' 카테고리의 다른 글

Map - compute(), computeIfAbsent(), computeIfPresent()  (0) 2025.04.29
가변 인자 (...)  (0) 2025.04.29
어노테이션(Annotation)  (0) 2025.04.21
Enum 열거형 타입  (0) 2025.04.21
유틸리티 클래스 (Utility Class)  (1) 2025.04.18