- String을 기본적으로 공백문자 기준으로 token화 시키는 것이다.
- 용법은 문자열을 생성자에 넣어주고 hasMoreTokens()와 nextToken()을 순환하면 된다.
예제
StringTokenizer st = new StringTokenizer("this is a test"); while (st.hasMoreTokens()) { System.out.println(st.nextToken()); }
- 공백문자가 아닌 다른 문자를 delimiter로 넣어주고 싶으면 생성자에 넣어주면된다. 예를 들어, 공백문자, 탭, 콤마를 delimiter로 지정하고 싶다면 아래와 같이 사용한다. (신기한 건 s와 t 앞에 backslash를 두 번 한다는 것이다. Regular expression에 근거)
StringTokenizer st = new StringTokenizer("this is a test", ",\\s\\t");
String.split()
- StringTokenizer는 호환성을 위해 남겨진 코드이고 새로운 코드에서는 String의 split()을 사용하자.
String[] tokens = "this is a test".split("\\s"); for (token : tokens) { System.out.println(token); }
- 기능적으로는 똑같지만 약간의 차이는 있다. Tokenizer의 경우 delimiter가 연속되면 그 모든 것들이 무시되는 반면 split()의 경우에는 delimiter 사이를 공백문자열로 하여 반환한다.
댓글 없음:
댓글 쓰기