문자열 토크나이저
Coddy Java 여정의 논리와 흐름 섹션에 포함된 레슨. 59개 중 48번째.
StringTokenizer는 구분자를 기준으로 문자열을 토큰(더 작은 부분)으로 나누는 데 사용됩니다. 기본적으로 공백을 구분자로 사용합니다.
기본 구분자(공백)로 StringTokenizer를 만듭니다:
StringTokenizer st = new StringTokenizer("Hello World Java");다른 문자로 분리하려면 해당 문자를 두 번째 인수로 전달합니다. 해당 문자열의 각 문자는 개별 구분자로 사용됩니다:
StringTokenizer st = new StringTokenizer("one,two;three", ",;");
System.out.println(st.countTokens()); // 출력: 3토큰 개수를 확인하고 가져오기:
int count = st.countTokens();
// 토큰의 개수를 가져옵니다
String first = st.nextToken();
// 다음 토큰을 가져옵니다위 코드를 실행한 후 변수에는 다음과 같은 값이 들어 있습니다:
count: 3
first: "Hello"중요: 토큰은 소모됩니다!
nextToken()을 호출하면 해당 토큰이 토크나이저에서 제거됩니다. countTokens() 메서드는 남아 있는 토큰의 개수를 반환합니다.
StringTokenizer st = new StringTokenizer("Hello World Java");
System.out.println(st.countTokens()); // 출력: 3
st.nextToken(); // "Hello"를 소비함
System.out.println(st.countTokens()); // 출력: 2 (3이 아님!)
st.nextToken(); // "World"를 소비함
System.out.println(st.countTokens()); // 출력: 1팁: 전체 토큰 수를 알아야 한다면 토큰을 소비하기 전에 countTokens()를 호출하세요. 반복하는 동안 사용할 수 있는 토큰이 더 있는지 확인하려면 hasMoreTokens()를 사용하세요.
챌린지
쉬움tokenizeText라는 메서드를 만들고 다음 두 인수를 받도록 하세요:
- 토큰화할 String(
text) - 기준으로 분할할 String(
delimiter)
메서드는 다음을 수행해야 합니다:
- 주어진 텍스트와 구분자로 StringTokenizer를 만듭니다
- 토큰 개수와 각 토큰을 새 줄에 포함하는 문자열을 반환합니다
반환 메시지는 다음과 같아야 합니다:
- text가 null인 경우: "Invalid text"을 반환합니다
- delimiter가 null인 경우: 공백을 구분자로 사용합니다
- 형식: "Token count: X\nToken: token1\nToken: token2\n..."
직접 해보기
import java.util.Scanner;
import java.util.StringTokenizer;
public class Main {
public static String tokenizeText(String text, String delimiter) {
// 여기에 코드를 작성하세요
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String text = scanner.nextLine();
String delimiter = scanner.nextLine();
if (text.equals("null")) text = null;
if (delimiter.equals("null")) delimiter = null;
System.out.println(tokenizeText(text, delimiter));
}
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리와 흐름의 모든 레슨
직접 연습해 보세요: 온라인 Java 컴파일러