2016년 3월 27일 일요일

Java StringTokenizer와 String.split() 용법

StringTokenizer
  • 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 사이를 공백문자열로 하여 반환한다.


댓글 없음:

댓글 쓰기