[java] 자바 StringTokenizer을 이용한 문장 단어 개수 세기

문장에서 단어를 개수가 몇개인지를 판단해야 하는 일이 생겼다.

어떻게 할까 고민하다가 생각해 낸건 StringTokenizer.

 

 StringTokenizer

 

StringTokenizer는 문자열을 내가 지정한 문자열로 구분시켜주는 클래스이다.

그렇게 구분한 문자열은 토큰(token)이라고 지칭하며  사용하기 위해서는  java.util.StringTokenize를 import 해야한다.

 

응용

String text = "노는 개발자의 정리 노트";
StringTokenizer stringTokenizer = new StringTokenizer(text);
int tokensCount  = stringTokenizer.countTokens();

System.out.println("tokensCount : "+tokensCount);

자르고자 하는 문자열을  StringTokenizer로 분리해보았다.

분리한 문자열의 갯수를 countTokens로 세어보면 4가 나온다.

결과가 4가 나오는 이유는 StringTokenizer은  전달된 delimiter로 문자열을 자르는데 기본 디폴트가 공백문자이기 때문이다.

 

String text = "노는-개발자의-정리-노트";
StringTokenizer stringTokenizer = new StringTokenizer(text,"-");
System.out.println(stringTokenizer.countTokens());

while(stringTokenizer.hasMoreTokens()){
	System.out.println(stringTokenizer.nextToken());
}
 System.out.println(stringTokenizer.countTokens());

 

내가 원하는 특정 문자로 문자열을 분리하려면 delim을 이용해야 한다.

자르고자 하는 문자열을  StringTokenizer에 넣고 delim으로 문자열 "-"을 넣어주었다.

while문과 hasMoreTokens()를 이용하면 구분한 문자열을 눈으로 확인할수 있다.

 

여기서 한가지 주의할점은 countTokens은 현재 남아있는 토큰의 갯수를 의미한다.

hasMoreElements()을 이용하면 다음 토큰을 가져오게 되며 countTokens의 반환하는 값은 달라지게 된다.

 

4
노는
개발자의
정리
노트
0

 

오늘은 간단하게 문자열을 분리할수 있는 StringTokenizer에 대해 알아보았다.