- 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 |