공부/Java

[Java] StringTokenizer

Jii- 2023. 11. 26. 17:23

StringTokenizer

import java.util.StringTokenizer;

StringTokenizer st = new StringTokenizer(문자열);
// 띄어쓰기 기준으로 문자열 분리

StringTokenizer st = new StringTokenizer(문자열, 구분자);
// 구분자 기준으로 문자열 분리

String Tokenizer st = new StringTokenizer(문자열, 구분자, false/true);
// true : 구분자를 기준으로 문자열을 분리하되, 구분자도 토큰으로 넣는다.
// false : 구분자를 기준으로 문자열을 분리하되, 구분자는 토큰으로 넣지 않는다. (디폴트)

 

리턴값 메서드 역할
boolean hasMoreTokens() 남아있는 토큰이 있다면 true, 없다면 false 리턴.
String nextToken() 객체에서 다음 토큰을 반환
String  nextToken(String delim) delim 기준으로 다음 토큰을 반환
boolean hasMoreElements() hasMoreToken 메서드와 동일하나, 엘리먼트보다 토큰으로 된 메서드를 주로 사용
Object nextElement() nextToken 메서드와 동일하나, 문자열이 아닌 객체를 리턴
int countTokens() 총 토큰의 개수를 리턴

 

StringTokenizer vs split()

  • 일반적인 상황 (데이터 + 구분자 + 데이터)

: 동일하게 동작

 

  • 구분자 사이에 데이터가 없는 경우 (데이터 + 구분자 + 구분자 + 데이터)

: split 메서드만 공백의 데이터를 반환

 

ex) String str = "apple, banana,,kiwi";

  StringTokenizer split()
0번째 "apple" "apple"
1번째 "banana" "banana"
2번째 "kiwi" ""
3번째   "kiwi"

 

  • 문자열이 구분자로 끝나는 경우 (데이터 + 구분자)

: 동일하게 마지막 데이터를 무시하는 방식으로 동작

 

ex) String str = "apple, banana,kiwi,";

  StringTokenizer split()
0번째 "apple" "apple"
1번째 "banana" "banana"
2번째 "kiwi" "kiwi"

 

 

 

참고 : 

https://dev-coco.tistory.com/94

 

[Java] StringTokenizer 문자열 분리하기 (split과 차이는 뭘까?)

StringTokenizer 클래스란? StringTokenizer 클래스는 문자열을 구분자를 이용하여 분리할 때 사용할 수 있습니다. 만일 BufferedReader 클래스의 메서드로 입력을 읽어들인다면 라인 단위로 읽어들일 수 밖

dev-coco.tistory.com

https://library1008.tistory.com/16

 

문자열 분리 - split() 와 StringTokenizer 의 차이점

문자열을 원하는 구분자(delimiter)를 사용하여 분리하고 싶을 때 StringTokenizer 와 String 메소드 split() 를 사용할 수 있습니다. 같지만 다른 두 가지 방법에 대해서 알아보도록 하겠습니다. (예제에서

library1008.tistory.com