안녕하세요. 제임스 입니다.
이번에는 Java 에서 String 을 다룰때 유용하게 사용할 수 있는 함수 중 한가지인 split 함수에 대해 알아 보겠습니다.
■ String[] split(String regex)
split 함수는 입력받은 정규표현식 또는 특정 문자를 기준으로 문자열을 나누어 배열(Array) 에 저장하여 리턴합니다.
String str = "010-1234-5678";
String[] mobNum = str.split("-");
String ret1 = mobNum[0];
String ret2 = mobNum[1];
String ret3 = mobNum[2];
System.out.println("ret1 = "+ret1);
System.out.println("ret2 = "+ret2);
System.out.println("ret3 = "+ret3);
위와 같은 휴대폰 번호가 있다고 가정하고 이를 split("-") 했을 경우
"010", "1234", "5678" 로 나누어져 배열에 저장됩니다.
ret1 = 010
ret2 = 1234
ret3 = 5678
System.out.println("휴대폰번호 => "+ret1+"-"+ret2+"-"+ret3);
위와 같이 다시 휴대폰 번호 형태로 중간에 "-" 를 추가 해서 조합하면 결과는 아래와 같이 나옵니다.
휴대폰번호 => 010-1234-5678
다른 예제 하나 더 보겠습니다.
String str2 = "서울,대전,대구,부산,인천,울산";
String[] cityArr = str2.split(",");
for (int i = 0; i < cityArr.length; i++){
System.out.println(cityArr[i]);
}
6개 도시명을 쉼표로 구분하여 나열했는데요, 이를 split(",") 했습니다.
그리고 cityArr 의 length 만큼 for loop 을 돌려 결과 값을 찍어 봤습니다.
서울
대전
대구
부산
인천
울산
결과 값이 이렇게 나옵니다. 참 쉽죠?
정규표현식을 이용한 split 방법도 있는데요. 이는 정규표현식에 대한 내용을 포스팅한 이후 다시 한번 정리 하겠습니다.
■ String[] split(String regex, int limit)
위의 인자값 하나만 받는것과 달리 int 형의 두번째 인자 값을 받는 split 함수 입니다.
두번째 인자 값은 배열의 크기를 결정합니다.
예제를 보면서 설명 드리겠습니다.
String str2 = "81-2-010-1234-5678";
String[] arr = str2.split("-", 2);
System.out.println("ret4 = "+arr[0]);
System.out.println("ret5 = "+arr[1]);
위와 같은 String 값이 있다고 했을때 "-" 를 인자 값으로 split 하면서 배열의 크기는 2로 한정 했습니다.
첫번째 "-" 를 기준으로 split 하면 아래와 같은 결과 값이 나옵니다.
ret4 = 81
ret5 = 2-010-1234-5678
arr[] 배열에 이미 ret4 와 ret5 가 들어 있으므로 더이상의 배열을 생성하지 않고 위 값이 최종 결과 값이 됩니다.
다른 예를 하나 더 보겠습니다.
String str2 = "81-2-010-1234-5678";
String[] arr2 = str2.split("-", 4);
System.out.println(arr2.length);
for (int i = 0; i < arr2.length; i++){
System.out.println("ret"+i+" = "+arr2[i]);
}
동일한 String 값을 두번째 인자값으로 4를 입력 합니다.
arr2 배열 크기를 4로 지정한겁니다.
어떤 결과 값이 나올지는 예상이 되시죠? ^^
ret0 = 81
ret1 = 2
ret2 = 010
ret3 = 1234-5678
위와 같이 arr2 배열에는 4개의 값이 들어 가게 됩니다.
이상 자바 문자열을 자르기 해봤습니다.
▼ 도움이 되셨다면 로그인이 필요 없는 ▼
▼ 하트 클릭 한번 부탁 드립니다 ▼
감사합니다 :D
'Java' 카테고리의 다른 글
[ 자바 코딩 ] Java 배열 정렬 (내림차순 vs 올림차순) (2296) | 2021.06.10 |
---|---|
[ 자바 코딩 ] NumberFormatException 원인과 해결방법 (1938) | 2021.06.10 |
[ 자바 코딩 ] java substring 으로 문자열 자르기 (3343) | 2021.06.10 |
[ 자바 코딩 ] Java Regular Expression 정규표현식 - 문자열 자르기 (split 함수) (1227) | 2018.07.03 |
[ 자바 코딩 ] Java Regular Expression 정규표현식 - 로또 번호 패턴 만들기 (1220) | 2018.07.02 |