StringTokenizer vs split

 


문자열 분리

 

JAVA에서 구분자로 문자열을 분리하는 방법은 2가지가 있습니다.

 

1. split

  • String 클래스의 속해있는 메서드로 정규표현식으로 문자열을 분리한다.
  • 정규표현식을 사용하여 속도가 느리나, 데이터 양이 많아질 경우 StringTokenizer과 속도 차이가 크게 나지 않는다.

 

* 정규표현식 : 특정한 규칙을 갖는 문자열, 줄여서 정규식이라고도 불림

ex. 만약 0~9 사이의 숫자가 구분자 일때 0|1|2|...|8|9로 작성하지만, 정규 표현식을 사용하면 간단하게 [0-9]로 표현 가능하다.

 

  • 반환 값이 문자열 배열 타입이다. ( String[] arr = str.split(","); )
  • 구분자 사이에 빈 문자열이 있을 경우 토큰으로 인식한다. > null 처리

 

 

2. StringTokenizer

  • java.util에 포함되어 있는 클래스이고 문자 또는 문자열로 문자열을 분리한다. 
  • 정규 표현식을 사용하지 않는 경우 이용이 가능하고, 빠른 속도로 사용하기 편하다.
  • 반환값이 문자열 타입이다. (String arr = st.nextToken() )
  • 구분자 사이에 빈 문자열이 있을 경우 토큰으로 인식하지 않는다.

 

 

import java.util.StringTokenizer;

public class test {

    public static void main(String[] args) {
        String testStr = "Banana,apple,,strawberry";

        String[] str1 = testStr.split(","); // return type : 문자열 배열
        StringTokenizer st = new StringTokenizer(testStr, ",");
        int count = st.countTokens();
        

        System.out.print("split : ");
        for(int i = 0; i < str1.length; i++)
            System.out.print(str1[i] + "/");

        System.out.print("\nStringTokenizer : ");
        for(int i =  0; i < count; i++)
            System.out.print(st.nextToken() + "/"); // return type : 문자열
    }
    
}

 

결과

> split과 stringTokenizer의 빈문자열 처리 방법을 알 수 있다.

 

 

 

 

 

 

 

참고사이트

https://jhnyang.tistory.com/398

https://smartpro.tistory.com/10

 

'JAVA' 카테고리의 다른 글

MAC M1 JAVA 설치  (0) 2022.02.25
Java 정규식 (Regular Expression)  (0) 2022.01.11
JAVA 설치하기 (for window)  (0) 2021.07.23
VScode에 java 환경 세팅하기 (mac)  (0) 2021.06.26
JAVA : Comparable & Comparator (+ 백준 11650)  (0) 2021.06.22