public class StringTokenizer extends Object implements Enumeration<Object>
StreamTokenizerクラスで使用されているメソッドよりもさらに簡単です。 StringTokenizerメソッドでは、識別子、数字、引用文字列は区別されません。また、コメントを認識してスキップすることもありません。
区切り文字(トークンを分ける文字)は、クラスの作成時、またはトークンを得るたびに指定できます。
StringTokenizerのインスタンスは、作成時のreturnDelimsフラグの値がtrueかfalseかによって、動作が異なります。
falseの場合は、区切り文字はトークンを分けるだけのものと見なされる。 トークンは区切り文字でない文字が1個以上連続している部分である
trueの場合は、区切り文字はそれ自体がトークンと見なされる。 トークンは、1個の区切り文字か、区切り文字でない文字が1個以上連続している部分である
StringTokenizerオブジェクトは内部的に、トークン化される文字列内の現在の位置を管理します。 いくつかのオペレーションは、この現在の位置を処理された文字の先に進めるものがあります。
トークンは、StringTokenizerオブジェクトを作成するのに使用された文字列の部分文字列を取得することによって返されます。
使用例を次に示します。 コード:
StringTokenizer st = new StringTokenizer("this is a test");
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
画面には次のように表示されます。
this
is
a
test
StringTokenizerは、互換性を維持する目的で保持されているレガシー・クラスであり、新規コードでは使用が推奨されていません。 この機能の使用を考えているなら、Stringのsplitメソッドまたはjava.util.regexパッケージを代わりに使用することをお薦めします。
次の例は、String.splitメソッドを使用して文字列を基本的なトークンに分割する方法を示します。
String[] result = "this is a test".split("\\s");
for (int x=0; x<result.length; x++)
System.out.println(result[x]);
画面には次のように表示されます。
this
is
a
test
StreamTokenizer| コンストラクタ | 説明 |
|---|---|
StringTokenizer(String str) |
指定された文字列に対するStringTokenizerを作成します。
|
StringTokenizer(String str, String delim) |
指定された文字列に対するStringTokenizerを作成します。
|
StringTokenizer(String str, String delim, boolean returnDelims) |
指定された文字列に対するStringTokenizerを作成します。
|
| 修飾子と型 | メソッド | 説明 |
|---|---|---|
int |
countTokens() |
例外を生成せずにこのトークナイザの
nextTokenメソッドを呼び出せる回数を計算します。 |
boolean |
hasMoreElements() |
hasMoreTokensメソッドと同じ値を返します。 |
boolean |
hasMoreTokens() |
トークナイザの文字列で利用できるトークンがまだあるかどうかを判定します。
|
Object |
nextElement() |
nextTokenメソッドと同じ値を返しますが、その宣言された戻り値はStringではなくObjectです。 |
String |
nextToken() |
文字列トークナイザから次のトークンを返します。
|
String |
nextToken(String delim) |
文字列トークナイザの文字列から次のトークンを返します。
|
public StringTokenizer(String str, String delim, boolean returnDelims)
delim引数内のすべての文字は、トークンを区切るための区切り文字です。
returnDelimsフラグがtrueの場合は、区切り文字もトークンとして返されます。 各区切り文字は長さ1の文字列として返されます。 フラグがfalseの場合は、区切り文字はスキップされ、トークンを分けるだけのものと見なされます。
delimがnullの場合、このコンストラクタは例外をスローしません。 ただし、結果となるStringTokenizerに対してほかのメソッドを呼び出そうとすると、NullPointerExceptionがスローされる場合があります。
str - 解析される文字列delim - 区切り文字returnDelims - 区切り文字をトークンとして返すかどうかを示すフラグ。NullPointerException - strがnullの場合public StringTokenizer(String str, String delim)
delim引数内の文字は、トークンを区切るための区切り文字です。 区切り文字は、それ自体がトークンとして処理されることはありません。
delimがnullの場合、このコンストラクタは例外をスローしません。 ただし、結果となるStringTokenizerに対してほかのメソッドを呼び出そうとすると、NullPointerExceptionがスローされる場合があります。
str - 解析される文字列delim - 区切り文字NullPointerException - strがnullの場合public StringTokenizer(String str)
" \t\n\r\f"で、スペース文字、タブ文字、改行文字、復帰文字、および用紙送り文字から構成されます。 区切り文字は、それ自体がトークンとして処理されることはありません。 str - 解析される文字列NullPointerException - strがnullの場合public boolean hasMoreTokens()
true、そうでない場合はfalse。public String nextToken()
NoSuchElementException - このトークナイザの文字列にトークンが残っていない場合public String nextToken(String delim)
delim - 新しい区切り文字。NoSuchElementException - このトークナイザの文字列にトークンが残っていない場合NullPointerException - delimがnullの場合public boolean hasMoreElements()
hasMoreTokensメソッドと同じ値を返します。 これを使用してこのクラスにEnumerationインタフェースを実装できます。 hasMoreElements、インタフェースEnumeration<Object>true、そうでない場合はfalse。Enumeration, hasMoreTokens()public Object nextElement()
nextTokenメソッドと同じ値を返しますが、その宣言された戻り値はStringではなくObjectです。 これを使用してこのクラスにEnumerationインタフェースを実装できます。 nextElement、インタフェースEnumeration<Object>NoSuchElementException - このトークナイザの文字列にトークンが残っていない場合Enumeration, nextToken()public int countTokens()
nextTokenメソッドを呼び出せる回数を計算します。 現在の位置は進みません。 nextToken() バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。