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 을 돌려 결과 값을 찍어 봤습니다.
서울
대전
대구
부산
인천
울산
■ 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개의 값이 들어 가게 됩니다.