1️⃣StringTokenizer이란
- 문자열을 구분자를 이용하여 분리할 때 사용한다.
- 공백 혹은 컴마를 기준으로 문자열을 분리하고 싶을 때, 아니면 특정 문자열을 나누고 싶을 때 StringTokenizer을 사용한다.
- 주로 BufferedReader를 사용할 때 활용한다.
2️⃣생성하는 방식
1. 띄어쓰기를 기준으로 문자열을 분리
StringTokenizer st = new StringTokenizer(문자열);
// StringTokenizer st = new StringTokenizer("aa bb cc");
2. 구분자를 기준으로 문자열을 분리
StringTokenizer st = new StringTokenizer(문자열, 구분자);
// StringTokenizer st = new StringTokenizer("aa!bb!cc", "!");
3️⃣ 예시
1. 문자열을 띄어쓰기 기준으로 분리하기
public static void main(String[] args) {
String str = "안녕하세요 반갑습니다.";
StringTokenizer st = new StringTokenizer(str); // 구분자 x
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
}
/*
안녕하세요
반갑습니다.
*/
2. 원하는 구분자를 기준으로 분리
public static void main(String[] args) {
// 여러 구분자("="와 ";")를 지정하여 사용
StringTokenizer st = new StringTokenizer("key=value;name=user", "=;");
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
}
/*
key
value
name
user
*/
3. 토큰 개수 확인하기
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine(); // "aa bb ccc"
StringTokenizer st = new StringTokenizer(str);
System.out.println(st.countTokens()); // 3
}
4️⃣StringTokenizer의 메서드
반환 타입 | 메서드 | 역할 |
boolean | hasMoreTokens() | 남아있는 토큰이 있으면 true를 리턴, 더 이상 토큰이 없으면 false 리턴 |
String | nextToken() | 객체에서 다음 토큰을 반환 |
String | nextToken(String delim) | delim 기준으로 다음 토큰을 반환 |
boolean | hasMoreTokens | hasMoreTokens와 동일한데 엘리먼트보다 토큰으로 된 메서드를 주로 사용 |
Object | nextElement() | nextToken 메서드와 동일하지만 문자열이 아닌 객체를 리턴 |
int | countTokens() | 총 토큰의 개수를 리턴 |
💡함께 학습하면 좋은 글
[Java, 입출력] BufferedReader, BufferedWriter 란?
0️⃣사용 시 주의사항(1) 클래스를 import해주어야 한다.import java.io.IOException;(2) main 클래스 옆에 throws IOException를 작성한다.public static void main(String[] args) throws IOException {}1️⃣BufferedReader의 특징사
devoks.tistory.com
[Java, String] split() 메서드 정리 - 문자열 자르기
Java String split() 메서드 완벽 정리Java에서 문자열을 분할하는 가장 기본적이고 중요한 메서드인 split()에 대해 자세히 알아보겠습니다.이 메서드는 정규식을 사용하여 문자열을 배열로 분할하는
devoks.tistory.com
'Backend > Java' 카테고리의 다른 글
[Java, String] split() 메서드 정리 - 문자열 자르기 (0) | 2025.07.13 |
---|---|
[Java, Stack] 왜 Stack이 아닌 Deque로 스택을 구현해야 할까? (1) | 2025.07.10 |
[Java] BufferedReader, BufferedWriter 란? (0) | 2025.07.10 |
[Java] 정렬 알고리즘 정리 (1) | 2025.07.02 |
[EffectiveJava] Item 14. Comparable을 구현할지 고려하라 (1) | 2025.07.01 |