Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaのStringTokenizerクラスとは?文字列をトークンに分割する方法を実例付きで解説

StringTokenizerObjectクラスのサブクラスであり、アプリケーションが文字列をトークン(字句)に分割するための機能を提供します。区切り文字(デリミタ)は、インスタンス生成時に指定することも、トークンごとに個別に指定することも可能です。

StringTokenizerオブジェクトは、生成時にreturnDelimsフラグtruefalseかによって動作が変わります。フラグがtrueの場合は区切り文字自体もトークンとして返され、falseの場合は区切り文字はスキップされます。また、StringTokenizerオブジェクトは内部で現在の解析位置(カーソル)を保持しており、順次トークンを取り出すことができます。

StringTokenizerクラスの主なメソッドには、hasMoreElements()hasMoreTokens()nextElement()nextToken()countTokens()があります。

構文

public class StringTokenizer extends Object implements Enumeration<Object>

StringTokenizerはEnumerationインターフェースを実装しているため、hasMoreElements()やnextElement()といったメソッドも利用できます。ただし、レガシーなクラスであるため、新規開発ではString.split()メソッドや正規表現を使うことが推奨される場合もあります。

例1:デフォルトの区切り文字(空白)で分割する

コンストラクタに区切り文字を指定しない場合、デフォルトでは空白文字(スペース、タブ、改行など)が区切り文字として使用されます。

import java.util.*;
public class StringTokenizerTest1 {
    public static void main(String args[]) {
        StringTokenizer tokens = new StringTokenizer("Welcome To Tutorials Point");
        System.out.println("countTokens : " + tokens.countTokens());
        while(tokens.hasMoreTokens()) {
            System.out.println(tokens.nextToken());
        }
    }
}

出力結果

countTokens : 4
Welcome
To
Tutorials
Point

この例では、文字列「Welcome To Tutorials Point」が空白で4つのトークンに分割されています。countTokens()メソッドは残りのトークン数を返し、hasMoreTokens()nextToken()を組み合わせることで、すべてのトークンを順番に取得できます。

例2:独自の区切り文字を指定して分割する

次の例では、nextToken()メソッドの引数にセミコロン「;」を指定し、トークンごとに異なる区切り文字を使用しています。

import java.util.*;
public class StringTokenizerTest1 {
    public static void main(String args[]) {
        StringTokenizer tokens = new StringTokenizer("Welcome-To-Tutorials;Point-India;Hyderabad");
        System.out.println("countTokens : " + tokens.countTokens());
        while(tokens.hasMoreTokens()) {
            System.out.println(tokens.nextToken(";"));
        }
    }
}

出力結果

countTokens : 1
Welcome-To-Tutorials
Point-India
Hyderabad

この例では、コンストラクタで区切り文字を指定していないため、countTokens()はデフォルトの空白ベースで計算した結果「1」を返します。一方、nextToken(";")のように引数で区切り文字を指定すると、その呼び出しからはセミコロンが区切り文字として使われ、文字列が3つの部分に分割されます。このように、StringTokenizerでは生成時とトークン取得時で異なる区切り文字を使い分けることが可能です。

  1. JavaでJComboBoxの項目をソートする方法!DefaultComboBoxModelのカスタマイズ例

    JComboBoxはJComponentクラスのサブクラスであり、テキストフィールドと、ユーザーが値を選択できるドロップダウンリストを組み合わせたSwingコンポーネントです。ユーザーがコンボボックスを操作すると、ActionListener、ChangeListener、ItemListenerといったインターフェースを通じてイベントを受け取ることができます。 ただし、標準のJComboBoxにはアイテムを並べ替える(ソートする)機能は用意されていません。そこで本記事では、DefaultComboBoxModelクラスを継承した独自のモデルクラスを作成し、コンボボックスの項目を常に整序された

  2. JavaでJFrameの最大化ボタンを無効化する方法を解説

    JFrameは、javax.swingパッケージに属するクラスで、java.awt.Frameクラスを継承しています。境界線とタイトルバーを持つトップレベルウィンドウであり、JFrameクラスには外観や動作をカスタマイズするための多数のメソッドが用意されています。JFrameのサイズを設定した後でも、デフォルトの状態ではユーザーが自由にウィンドウサイズを変更できてしまいます。具体的には、カーソルをウィンドウの隅に合わせてドラッグすればサイズを変更できますし、右上にある閉じるボタンの隣の「最大化」ボタンを押せば、画面いっぱいに拡大されてしまいます。これは、JFrameクラスではリサイズ(resi