2020. 12. 16. 23:19ㆍ프로그래밍 언어/Java
지난 시간에는 index를 지정하여 문자열을 자르는 substring을 알아보았습니다.
이번 시간에는 특정 문자를 지정하여 여러 개의 문자열로 자르는 split을 알아보도록 하겠습니다.
문자열 | 사과, 배, 귤, 바나나, 딸기, 수박 |
과일 이름을 여러 개 가지고 있는 문자열을 생각해보도록 하겠습니다.
각 과일을 구분하는 것(구분자, delimeter)은 ,(쉼표) 입니다.
쉼표 기준으로 문자열을 자른다고 하면 쉽게 과일 이름을 뽑아낼 수 있습니다.
문자열을 자른 결과를 String 배열인 results[]에 저장한다고 가정하면 아래 표와 같이 됩니다.
results[0] | 사과 |
results[1] | 배 |
results[2] | 귤 |
results[3] | 바나나 |
results[4] | 딸기 |
results[5] | 수박 |
Java API
String 클래스의 split 함수는 2가지 형태로 제공되고 있습니다.
String[] split(String regex)
/*
파라미터:
regex - 문자열을 자르기 위한 구분자(delimiter), 구분자는 정규표현식으로 지정합니다.
*/
String[] split(String regex, int limit)
/*
파라미터:
regex - 문자열을 자르기 위한 구분자(delimiter), 구분자는 정규표현식으로 지정합니다.
limit - 구분자(delimiter)로 문자열 자르는 최대횟수
*/
사용법
과일 예제로 간단하게 사용법을 알아보겠습니다.
대부분의 경우 첫번째 API를 사용하여 구분자를 지정해서 구분자 기준으로 모든 문자를 잘라냅니다.
String str = "사과, 배, 귤, 바나나, 딸기, 수박";
String[] results = str.split(",");
// ,로 구분한 모든 문자열 출력
for (int i = 0; i < results.length; i++) {
System.out.println("results[" +i + "] = " + results[i]);
}
// 출력
results[0] = 사과
results[1] = 배
results[2] = 귤
results[3] = 바나나
results[4] = 딸기
results[5] = 수박
2번째 API는 잘 안 쓰이는 API이므로 궁금하신 분들만 보시면 될 듯 합니다.
문자열을 잘라서 생성되는 배열의 개수를 limit 숫자로 지정합니다.
아래 예제는 4를 지정하여 4개의 배열로 생성합니다.
마지막 배열은 더 이상 구분자 기준으로 자르지 않기 때문에 남아있는 모든 문자열을 그대로 가지고 있습니다.
String str = "사과, 배, 귤, 바나나, 딸기, 수박";
// 문자열을 자른 결과가 총 4개의 배열로 생성됩니다.
String[] results = str.split(",", 4);
for (int i = 0; i < results.length; i++) {
System.out.println("results[" +i + "] = " + results[i]);
}
// 출력
results[0] = 사과
results[1] = 배
results[2] = 귤
results[3] = 바나나, 딸기, 수박
자주 사용하는 활용예제
split의 경우 대부분 공백 기준으로 자르는 경우가 많습니다.
String str = "사과 배 귤 바나나 딸기 수박";
String[] results = str.split(" ");
for (int i = 0; i < results.length; i++) {
System.out.println("results[" +i + "] = " + results[i]);
}
// 출력
results[0] = 사과
results[1] = 배
results[2] = 귤
results[3] = 바나나
results[4] = 딸기
results[5] = 수박
IP 주소를 .(dot) 기준으로 나누는 예제입니다.
구분자를 지정하는 파라미터는 정규표현식이라서 .만 넣으면 원하시는대로 나오지 않습니다.
정규표현식의 예약어라서 .(dot) 앞에 역슬래시(\)를 2개 넣어야 인식됩니다.
String ipAddress = "110.20.0.255";
String[] ips = ipAddress.split("\\.");
for (int i = 0; i < ips.length; i++) {
System.out.println("ips[" + i + "] = " + ips[i]);
}
// 출력
ips[0] = 110
ips[1] = 20
ips[2] = 0
ips[3] = 255
split 함수의 첫번째 파라미터가 정규표현식을 사용하고 있는데 다음에 기회가 되면 정규표현식을 사용하는 것을 알아보도록 하겠습니다.
관련글 :
2020/12/12 - [Java] - [Java] 문자열 자르기 - substring
2020/12/21 - [Java] - [Java] 문자열 자르기 - 여러 구분자/특수기호 사용하기
2020/12/30 - [Java] - [Java] 문자열 자르기 - char형 구분자
'프로그래밍 언어 > Java' 카테고리의 다른 글
[Java] 문자열 자르기 - char형 구분자 (0) | 2020.12.30 |
---|---|
[Java] 문자열 자르기 - 정규표현식(split) (0) | 2020.12.28 |
[Java] 문자열 자르기 - 여러 구분자/특수기호 사용하기 (0) | 2020.12.21 |
[Java] 문자열 자르기 - StringTokenzer (0) | 2020.12.17 |
[Java] 문자열 자르기 - substring (0) | 2020.12.12 |