Split이란?
Split은 구분자를 기준으로 문자열을 잘라 배열로 입력할 때 사용하는 메서드입니다
Split의 사용방법에는
split(String regex);
-> 구분자를 바탕으로 배열 형식으로 문자열을 잘라줍니다
split(String regex, int limit);
-> 위와 마찬가지로 구분자를 바탕으로 배열 형식으로 문자열을 자르지만 limit 수만큼 잘라줍니다
두 가지가 있습니다
split(String Rex);
예제를 통해서 split의 사용방법에 대해서 알아보겠습니다!
[" "으로 분리]
먼저 공백 " "을 사용하여 문자열을 분리합니다
public class Split {
public static void main(String[] args) {
String str = "Hello World";
String[] ArraysStr = str.split(" ");
for(String s : ArraysStr)
System.out.println(s);
}
}
결과 화면
Hello World가 공백을 기준으로 분리된 모습입니다

[","으로 분리]
다음에는 ","를 기준으로 분리하겠습니다
public class Split {
public static void main(String[] args) {
String str = "ABCDEFG,HIJKLMN,OPQRSTU,VWXYZ";
String[] ArraysStr = str.split(",");
for(String s : ArraysStr)
System.out.println(s);
}
}
결과 화면

[여러 개의 구분자를 두어서 분리]
구분자를 하나가 아닌 여러 개를 사용하여 분리도 가능합니다
아래 예제처럼 구분자의 사이에 | 를 사용하여 구분자|구분자|구분자 이렇게 여러 개의 구분자를 사용이 가능합니다
, @ - 공백을 구분자로 아래의 내용을 분리합니다
public class Split {
public static void main(String[] args) {
String str = "안녕하세요,이메일주소는 hongil@naver.com";
String[] ArraysStr = str.split(",|@|-| ");
for(String s : ArraysStr)
System.out.println(s);
}
}
결과 화면

[하나의 값만 가져오기]
이번에는 배열이 아닌 하나의 값만 가져오고 싶은 경우에 대해서 알아보겠습니다
아래처럼 split 이후에 [숫자]를 사용하면 해당하는 순서의 값만 가져옵니다
public class Split {
public static void main(String[] args) {
String str = "111-2222-3333";
String ArraysStr = str.split("-")[1];
System.out.println(ArraysStr);
}
}
결과 화면
위의 소스를 실행하면 아래처럼 두 번째 배열인 "2222"만 가져옵니다

split(String regex, int limit);
split 문자열 메서드에서 limit을 추가하면 limit만큼만 문자열 나눠줍니다
바로 예제를 통해서 확인해보겠습니다
제가 궁금해서 여러 가지 경우의 수를 테스트해봤습니다
public class Split {
public static void main(String[] args) {
String str = "123 4 5 67 890 ";
String[] LimitThree = str.split(" ", 3);
String[] LimitExceed = str.split(" ", 10);
String[] LimitZero = str.split(" ", 0);
String[] LimitMinus = str.split(" ", -1);
System.out.println("----LimitThree----");
for(int i = 0; i < LimitThree.length; i++)
System.out.println(i + "배열 : " + LimitThree[i]);
System.out.println("----LimitExceed----");
for(int i = 0; i < LimitExceed.length; i++)
System.out.println(i + "배열 : " + LimitExceed[i]);
System.out.println("----LimitZero----");
for(int i = 0; i < LimitZero.length; i++)
System.out.println(i + "배열 : " + LimitZero[i]);
System.out.println("----LimitMinus----");
for(int i = 0; i < LimitMinus.length; i++)
System.out.println(i + "배열 : " + LimitMinus[i]);
}
}
위의 코드의 결과 화면입니다

1. String[] LimitThree = str.split(" ", 3);
3개의 배열로 나눈 것을 확인할 수 있습니다
나머지 문자열은 마지막 배열에 그대로 표기해줍니다
2. String[] LimitExceed = str.split(" ", 10);
Limit이 나눈 값의 범위를 초과했을 때 입니다
전 Index에러가 뜰 줄 알았는데 일반 split할 때처럼 보여줍니다
3. String[] LimitZero = str.split(" ", 0);
Limit을 0으로 넘겨주는 경우 나눈 값이 ""로 나오는 경우 배열에서 제외시켜버립니다
4. String[] LimitZero = str.split(" ", -1);
Limit을 마이너스로 지정한 경우입니다
Index에러가 뜰 줄 알았는데 일반 split()을 사용할 때와 똑같은 값을 출력해주네요
출처: https://crazykim2.tistory.com/549 [차근차근 개발일기+일상:티스토리]
'Java Algo Core 20' 카테고리의 다른 글
String Methods (6) (0) | 2024.05.08 |
---|---|
String Methods (5) (0) | 2024.05.08 |
String Methods (3) (0) | 2024.05.08 |
String Methods (2) (0) | 2024.05.08 |
String Methods (0) | 2024.05.07 |