StringTokenizer와 Scanner와 String.Split


자바의 스캐너 클래스를 배우면서 split하고 StringTokenizer이 세개의 차이점이 궁금해졌어요. 제가 알기로는 StringTokenizer랑 split은 오직 문자열에서만 동작하는데 그럼 왜 굳이 문자열을 분리할때 Scanner를 쓰죠?

  • 2016년 02월 13일에 작성됨

조회수 234


1 답변


좋아요
0
싫어요
채택취소하기

문자열 분리에 사용되는 클래스

  1. StringTokenizer
  2. Scanner
  3. String
  4. Pattern,Matcher (정규식)

각 특징들

  1. StringTokenizer 클래스: 생성자에 단 한 문자 구분자만 사용하여 토큰으로 분리한다.(여러개의 구분자는 사용가능하다)
  2. Scanner 클래스:useDelimiter() 메서드로 패턴 또는 문자열 구분자를 사용하여 분리한다.
  3. String 클래스: split() 메서드로 패턴 또는 문자열 구분자를 사용하여 분리하며, 빈문자열도 토큰으로 인식하며, 배열로 반환한다.
  4. 정규식 패턴: Pattern클래스로 단순한 패턴부터 복잡하고 다양한 패턴을 이용한 구분자로 분리가 가능하다.

일단 정규식 기능은 String 클래스에 추가되어 왔습니다. 그리고 J2SE 5.0 JavaDocs에는 다음과 같이 언급하며, StringTokenizer의 추후 이용을 권장하지 않고 있습니다.

  StringTokenizer는 새로운 코드에서는 사용이 권장되지 않으나 
  호환성의 이유로 보유되고 있는 상속 클래스입니다. 이 기능을 사용하려는 사용자는 
  String의 분리 메소드 또는 java.util.regex 패키지 이용을 권장합니다. 

위의 내용들은 문자열 분리에 사용되는 클래스들의 특징과 StringTokenizer는 이제 사용안하는것을 권장한다는 내용이고 똑같은 문자열 분리에 굳이 Scanner를 사용하는 이유라면 Scanner를 굳이 사용하게 되는 경우는 파일로부터 데이터를 읽어오는 도중에 문자열을 분리하고 싶을 경우 Scanner를 쓰면 유용하다는 것입니다.

  • 2016년 02월 13일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close