백준 7490번 0 만들기를 풀 때 StringTokenizer 를 사용하면 좀 더 편하게 해결할 수 있습니다.

StringTokenizer 는 구분자를 포함해서 문자열을 분리할 수 있기 때문입니다.

예를 들어, 1+2+3 을 1, +, 2, +, 3 으로 분리 가능하죠.

그러면 StringTokenizer 에 대해서 살펴보도록 합시다.

StringTokenizer 클래스란?

StringTokenizer 클래스는 하나의 문자열을 여러 개의 토큰으로 분리하는 클래스입니다.

그런데 문자열을 분리하는 split 메소드가 존재합니다. split 이 존재하는데 왜 StringTokenizer 가 또 있는걸까요?

이 2개의 메소드는 모두 문자열을 파싱하는데 사용하는 것은 맞습니다.

단, 몇 가지 차이점이 존재하죠.

  1. StringTokenizer는 문자 또는 문자열로 문자열을 구분한다면, split는 정규표현식으로 구분합니다.

  2. StringTokenizer는 빈 문자열을 토큰으로 인식하지 않지만 split는 빈 문자열을 토큰으로 인식하는 차이가 있습니다.

    +1+2+3 문자열을 + 로 구분한다고 했을 때 StringTokenizer 는 3개의 문자열로 분리하지만 split은 4개의 문자열로 분리하죠.

StringTokenizer 생성자

StringTokenizer를 생성하는 방식에는 3가지가 있습니다.

출처 : https://jhnyang.tistory.com/entry/JAVA-StringTokenizer-클래스로-문자열-분리하기-split-비교

출처 : https://jhnyang.tistory.com/entry/JAVA-StringTokenizer-클래스로-문자열-분리하기-split-비교