정규표현(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 는 무시된다
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 를 넘지는 못한다.
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 을 포함
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 을 포함
'Java' 카테고리의 다른 글
StringBuilder 클래스 (0) | 2009.03.06 |
---|---|
제네릭(generic) & 컨테이너 (1) | 2009.03.04 |
이클립스에서 Java API Docs (도움말) 한글화 (3) | 2008.11.25 |
자바로 OS의 인코딩(Character Set) 확인 해 보기 (0) | 2008.11.24 |
Exception in thread "main" java.lang.ClassFormatError: (2) | 2008.11.24 |