Menu
Coddy logo textTech

StringTokenizer

CoddyのJavaジャーニー「ロジックとフロー」セクションの一部 — レッスン 48/59。

StringTokenizer は、文字列を区切り文字に基づいてトークン(小さな部分)に分割するために使用されます。デフォルトでは、空白を区切り文字として使用します。

デフォルトの区切り文字(スペース)を使用して StringTokenizer を作成します:

StringTokenizer st = new StringTokenizer("Hello World Java");

トークンをカウントして取得:

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() を使用してください。

challenge icon

チャレンジ

簡単

tokenizeText という名前のメソッドを作成し、2つの引数を受け取ります:

  1. トークン化する String (text)
  2. 分割に使用する String (delimiter)

このメソッドは次のことを行うべきです:

  1. 与えられたテキストと区切り文字で StringTokenizer を作成します
  2. トークンの数と、各トークンを新しい行に含む文字列を返します

戻り値のメッセージは次のようであるべきです:

  • text が null の場合: "Invalid text" を返します
  • delimiter が null の場合:スペースを区切り文字として使用します
  • フォーマット: "Token count: X\nToken: token1\nToken: token2\n..."

チートシート

StringTokenizer は、文字列を区切り文字に基づいてトークン(小さな部分)に分割します。デフォルトでは、空白を区切り文字として使用します。

デフォルトの区切り文字(スペース)で StringTokenizer を作成:

StringTokenizer st = new StringTokenizer("Hello World Java");

トークンのカウントと取得:

int count = st.countTokens();  // トークンの数を返します
String first = st.nextToken(); // 次のトークンを取得します

カスタム区切り文字で StringTokenizer を作成:

StringTokenizer st = new StringTokenizer(text, delimiter);

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() を使用します。

自分で試してみよう

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));
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン