문자열을 나누는 대표적인 방법 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 |