자바(Java)〃문자열(2) StringTokenizer 클래스는??

반응형


저번글에서는 문장중에 특정한 문자를 읽거나, 쉼표나 띄어쓰기로 구분하여 배열을 저장하는 문자열의 명령어에 대해 정리해보았습니다.


이번에는 StringTokenizer 클래스에 대해 알아보려고 하는데요. split과 둘의 차이점이라고 한다면 split은 String클래스의 메소드로 추출한 문자를 배열로 저장하고, StringTokenizer는 메소드가 아니라 java.util에 포함되어 있는 자체 클래스입니다. 그렇기 때문에 사용하는 방법이 다르고 StringTokenizer클래스는 내부에 꼭 넣어야 하는 메소드가 존재합니다.



StringTokenizer의 3가지 메소드 

이 클래스는 문자열을 토큰이라는 용어로 부르는데 사용방법은 메소드를 이용하여 전체 토큰의 수는 몇개 있는지, 사용할 토큰이 있는지를 판단하여 토큰을 읽어옵니다.


위 사진에 보이는 메소드중 nextToken을 포함한 2가지 이상의 메소드를 이용하면 문자열을 분리하여 원하는 결과값을 도출할 수 있는데요. countToken 메소드로 토큰의 수를 파악하고 nextToken 으로 토큰을 읽어오던지, hasMoreTokens 메소드로 토큰이 남아있는지 확인후 nextToken 으로 토큰을 읽어오는 방법이 있죠.




 예제 1 ( countTokens + nextToken )



토큰의 수를 확인후 읽어오는 방법의 StringTokenizer 예제입니다. 이 방법을 사용하면 한가지의 구분 문자로만 나눌수 있으며, new 연산자로 선언을 해주고 구분할 문자열을 매개변수로 넣어줍니다. 그리고 countTokens로 토큰수를 확인 nextToken으로 토큰을 읽어오는거죠.




 예제 2 ( hasMoreTokens + nextToken )



예제 두번째는 토큰이 남아있는지 확인한 후 토큰을 읽어오는 방법으로 hasMoreTokens는 boolean의 리턴타입을 가지고 있기 때문에 while문을 이용하여 두가지 이상의 구분 문자열로 나눌 수 있습니다.


보통 StringTokenizer 선언시에 (aaa."!@",true)중 true를 생략해줘도 되지만 저처럼 if문을 적용하여 문자열을 추가 시키려면 넣어줘야 되요. 조금 응용된 예제라 어려워 보이지만 ture를 생략하여 if문을 제거하고 그자리에 system.out.println(data);만 넣어줘도 원하는 결과값을 얻을 수 있습니다.

반응형