StringTokenizer
java.util에 포함되어 있는 문자열을 토큰으로 분리하는 클래스이다.
StringTokenizer 클래스는 3가지로 오버라이딩 되어있다.
// 1. defalut(공백, 탭, 줄바꿈) 구분자로 문자열을 분리
StringTokenizer st = new StringTokenizer(String str) {
this(str, " \t\n\r\f", false);
}
// 2. 구분자(delim)를 기준으로 문자열을 분리
StringTokenizer st = new StringTokenizer(String str, String delim) {
this(str, delim, false);
}
// 3. 구분자(delim)를 기준으로 문자열을 분리하고, 구분자도 토큰으로 반환(true)
StringTokenizer st = new StringTokenizer(String str, String delim, boolean returnDelims) {
this(str, delim, true);
}
💡StringTokenizer vs split()
StringTokenizer는 클래스, split()은 String 클래스에 속하는 메소드
StringTokenizer는 결과 값이 문자열이고, split()은 결과 값이 문자열 배열
StringTokenizer는 빈 문자열을 토큰으로 인식하지 않고, split()은 토큰으로 인식
hasMoreTokens()
현재 남아있는 문자열 중에서 다음에 추출할 수 있는 토큰이 있는지를 확인하는 메서드이다.
다음 토큰이 있으면 true, 없으면 false 값을 반환한다.
메서드명에 's'가 붙어있음에 유념해야한다.
nextToken()
문자열을 구분자 기준으로 분리하여, 다음 토큰을 읽어 들인다.
import java.util.StringTokenizer;
public class lenTest {
public static void main(String[] args) {
String str = "abc def ghi j";
StringTokenizer st = new StringTokenizer(str);
while (st.hasMoreTokens()){
String token = st.nextToken();
System.out.println(token);
}
}
}
countTokens()
문자열 내의 토큰 수를 계산하여 반환한다.
메서드명에 's'가 붙어있음에 유념해야한다.
import java.util.StringTokenizer;
public class lenTest {
public static void main(String[] args) {
String str = "abc def ghi j";
StringTokenizer st = new StringTokenizer(str);
int numTokens = st.countTokens(); // 4
}
}
'언어(Language) > Java' 카테고리의 다른 글
[Java] length, length(), size() 차이점 (0) | 2024.09.27 |
---|---|
[Java] 자바 래퍼 클래스(Wrapper Class) (2) | 2024.09.26 |