- StirngToKenizer 과 Split 의 차이점

 

### StringTokenizer ####

 

보통 문자열을 쪼개서 사용을 할때 많이 사용하는 것이 String Tokenizer 이다.

하지만, 조심해야 한다. 특정 구분자로 문자를 자를때 Null 값을 출력하지 못한다.

예를 들면,

String _str = "최우철|김진성||김성수";

StringTokenizer _tokens = new StringTokenizer(_str, "|");

for ( int i = 1; tokens.hasMoreElements(); i++ ) {

System.out.println("문자" + i + " = " + tokens.netToken() );

}

결과는

문자1 = 최우철

문자2 = 김진성

문자3 = 김성수

 

이렇게 나오게 된다. 즉 구분자("|") 로 따지면 Null 값이지만 값은 4개다.

하지만, 인식을 못한다.

만약에, DB 에 INSERT 한다면, 필드가 하나 빠지게 된다.

조심하자. 그래서 SDK 1.4 부터 나온 Split() 가 있다.

 

### Split ####

 

Stirng _str = "최우철|김진성||김성수";

String[] _values = _str.split("|");

for( int i = 0; x < _values.length; i++ ) {

System.out.println("문자" + (i+1) + " = " + _values[i] );

}

결과는

문자1 = 최우철

문자2 = 김진성

문자3 =

문자4 = 김성수


만약에, 맨 뒤에 값이 없을 경우에는 어떻게 처리할까?

String _str = "최우철|김진성|김성수||";

String[] _values = _str.split("|");

결과는

문자1 = 최우철

문자2 = 김진성

문자3 = 김성수

이렇게 나온다. 참고! split / StringTokenizer 두개 모두 이런경우에는 3개만 나온다.

하지만 마지막 데이타도 Null 값으로 출력을 하고 싶다면...

당연 split() 메서드다.

이클립스 split() 자동완성 API 를 보면 오보로딩 된 메서드로 2개가 있다.

1. split( String regex ) / 2. split( String regex, int limit )

2번 split( String regex, int limit ) 를 사용하면 limint int 만큼 배열의 Null 값 입력

문자열이 limit int 보다 크면 limit int 만큼만 출력하고 나머지는 버린다.

'공부 > JAVA' 카테고리의 다른 글

JAVA_[객체_직렬화]  (0) 2012.06.23
JAVA_[Adapter_패턴 (일명 : Wrapper 패턴)]  (0) 2012.06.23
JAVA_[Eclipse_SerialVersionUID]  (0) 2012.06.23
JAVA_[코딩_지침]  (0) 2012.06.21
JAVA_[텍스트파일읽기_예제]  (0) 2012.06.21

+ Recent posts