Java에서 문자열을 분리할때, StringTokenizer을 사용하자

Java에서 문자열을 분리할때, 간단하게 split 함수를 사용 할 수 있다. 사용하기 편리하다 하지만 속도는 StringTokenizer 가 더 빠르다. 따라서, 속도가 중요할 경우에는 StringToknizer을 사용하는 것이 좋다.

// 일반적으로 사용
StringTokenizer st = new StringTokenizer("this is a test");
while (st.hasMoreTokens()) {
    System.out.println(st.nextToken());
}

// BufferedReader 와 같이 사용할때
StringTokenizer token = new StringTokenizer(br.readLine());

int val1 = Integer.parseInt(token.nextToken());
int val2 = Integer.parseInt(token.nextToken());

split 사용법도 알아두면 좋다. 가장 많이 사용하는 공백자르기 2개는 꼭 기억하자.

// "\\s" 는 공백(space)로 자르기 이다.
String[] result = "this is a test".split("\\s");

// "\\s+" 는 공백(space)가 가변적으로 (스페이스가 하나 이상)인 경우도 정상적으로 잘라주는 표현이다.
for (int x=0; x<result.length; x++)
    System.out.println(result[x]);

속도비교 - 참고: https://github.com/hughperkins/jfastparser

Scanner: 10642 ms
split: 715 ms
StringTokenizer: 544ms
JFastParser: 290ms

results matching ""

    No results matching ""