본문 바로가기

Dev. Java

자바 split 메소드로 문자열 분할하기

자바 1000제를 풀던 중, String 클래스의 split 메소드를 사용하게 되었다.

사용법을 보니 대강 이해는 가는데, limit이 잘 이해가 안된다 ㅡㅡㅋ


출처 : http://byeonely.tistory.com/108


public String [] split(String  regex, int limit)


정규표현(regex)에 따라 결과 배열의 길이를 제어(limit)하는 문자열을 만든다.

분할 할 문자열을 String regex 을 기준을 분할 시킨다.

limit 에 따라 3가지 분할 방법으로 나누어 볼 수 있다.


1. limit 가 0(zero)일 경우 

String str = "a/b/c/d////";
String regex = "/";
int limit = 0;
  
String[] result = str.split(regex, limit);
  
for(int i=0; i < result.length; i++)
   System.out.print(result[i] + "!");

[ 결과 ]
a !b !c !d !

// result 는 {"a", "b", "c", "d"} 이다
// zero string length 는 무시된다



2. limit 가 양수일 경우.

String str = "a/b/c/d////";
String regex = "/";
int limit = 6;
  
String[] result = str.split(regex, limit);
  
for(int i=0; i < result.length; i++)
   System.out.print(result[i] + " ");

[ 결과 ]
a !b !c !d ! !// ! 

// result 는 {"a", "b", "c", "d", "", "//"}
// zero string length 을 포함하지만 배열의 최대 갯수 limit 를 넘지는 못한다.



3. limit 가 음수일 경우.

String str = "a/b/c/d////";
String regex = "/";
int limit = -1;
  
String[] result = str.split(regex, limit);
  
for(int i=0; i < result.length; i++)
   System.out.print(result[i] + " ");

[ 결과 ]
a !b !c !d ! ! ! ! ! 


// result 는 {"a", "b", "c", "d", "", "", "", ""} 배열의 길이 8
// zero string length 을 포함


'Dev. Java' 카테고리의 다른 글

[자바 기본기] package와 import  (0) 2014.05.17
[자바 기본기] 오버라이딩  (0) 2014.05.16
[자바 기본기] 상속  (0) 2014.05.13
문자열 입력과 출력 (Scanner)  (0) 2014.05.13
[자바 기본기] 변수의 초기화  (0) 2014.05.11