クラスStringTokenizer
- すべての実装されたインタフェース:
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 (String r : result)
System.out.println(r);
画面には次のように表示されます。
this
is
a
test
- 導入されたバージョン:
- 1.0
- 関連項目:
-
コンストラクタのサマリー
コンストラクタコンストラクタ説明StringTokenizer(String str) 指定された文字列に対するStringTokenizerを作成します。StringTokenizer(String str, String delim) 指定された文字列に対するStringTokenizerを作成します。StringTokenizer(String str, String delim, boolean returnDelims) 指定された文字列に対するStringTokenizerを作成します。 -
メソッドのサマリー
修飾子と型メソッド説明int例外を生成せずにこのトークナイザのnextTokenメソッドを呼び出せる回数を計算します。booleanhasMoreTokensメソッドと同じ値を返します。booleanトークナイザの文字列で利用できるトークンがまだあるかどうかを判定します。nextTokenメソッドと同じ値を返しますが、その宣言された戻り値はStringではなくObjectです。文字列トークナイザから次のトークンを返します。文字列トークナイザの文字列から次のトークンを返します。クラスjava.lang.Objectで宣言されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitインタフェースjava.util.Enumerationで宣言されたメソッド
asIterator
-
コンストラクタの詳細
-
StringTokenizer
指定された文字列に対するStringTokenizerを作成します。delim引数内のすべての文字は、トークンを区切るための区切り文字です。returnDelimsフラグがtrueの場合は、区切り文字もトークンとして返されます。 各デリミタは、デリミタ(1つまたは2つのchar)の単一の「Unicodeコード・ポイント」で構成される文字列として返されます。 フラグがfalseの場合は、区切り文字はスキップされ、トークンを分けるだけのものと見なされます。delimがnullの場合、このコンストラクタは例外をスローしないことに注意してください。 ただし、結果のStringTokenizerで他のメソッドを呼び出そうとすると、NullPointerExceptionが発生する可能性があります。- パラメータ:
str- 解析される文字列delim- 区切り文字returnDelims- 区切り文字をトークンとして返すかどうかを示すフラグ。- スロー:
NullPointerException- strがnullの場合
-
StringTokenizer
指定された文字列に対するStringTokenizerを作成します。delim引数内の文字は、トークンを区切るための区切り文字です。 区切り文字は、それ自体がトークンとして処理されることはありません。delimがnullの場合、このコンストラクタは例外をスローしないことに注意してください。 ただし、結果のStringTokenizerで他のメソッドを呼び出そうとすると、NullPointerExceptionが発生する可能性があります。- パラメータ:
str- 解析される文字列delim- 区切り文字- スロー:
NullPointerException- strがnullの場合
-
StringTokenizer
public StringTokenizer(String str) 指定された文字列に対するStringTokenizerを作成します。 トークナイザはデフォルトの区切り文字セットを使います。このセットは" \t\n\r\f"で、スペース文字、タブ文字、改行文字、復帰文字、および用紙送り文字から構成されます。 区切り文字は、それ自体がトークンとして処理されることはありません。- パラメータ:
str- 解析される文字列- スロー:
NullPointerException- strがnullの場合
-
-
メソッドの詳細
-
hasMoreTokens
public boolean hasMoreTokens()トークナイザの文字列で利用できるトークンがまだあるかどうかを判定します。 このメソッドがtrueを返す場合、引数なしのnextTokenへの後続の呼出しは、トークンを正常に返します。- 戻り値:
- 文字列内の現在の位置の後ろに1つ以上のトークンがある場合だけ
true、そうでない場合はfalse。
-
nextToken
public String nextToken()文字列トークナイザから次のトークンを返します。- 戻り値:
- 文字列トークナイザからの次のトークン
- スロー:
NoSuchElementException- このトークナイザの文字列にトークンが残っていない場合
-
nextToken
文字列トークナイザの文字列から次のトークンを返します。 最初に、このStringTokenizerオブジェクトでデリミタとみなされる一連の文字が、文字列delimの文字に変更されます。 次に、文字列内の現在の位置の後ろにある次のトークンが返されます。 現在の位置は、認識されたトークンを越えて進みます。 指定された区切り文字の集合は、この呼出しのあともデフォルト値として使用されます。- パラメータ:
delim- 新しい区切り文字。- 戻り値:
- 新しい区切り文字に切り替えたあとのトークン
- スロー:
NoSuchElementException- このトークナイザの文字列にトークンが残っていない場合NullPointerException- delimがnullの場合
-
hasMoreElements
public boolean hasMoreElements()hasMoreTokensメソッドと同じ値を返します。 これを使用してこのクラスにEnumerationインタフェースを実装できます。- 定義:
hasMoreElements、インタフェースEnumeration<Object>- 戻り値:
- トークンがまだある場合は
true、そうでない場合はfalse。 - 関連項目:
-
nextElement
public Object nextElement()nextTokenメソッドと同じ値を返しますが、その宣言された戻り値はStringではなくObjectです。 これを使用してこのクラスにEnumerationインタフェースを実装できます。- 定義:
nextElement、インタフェースEnumeration<Object>- 戻り値:
- 文字列の次のトークン
- スロー:
NoSuchElementException- このトークナイザの文字列にトークンが残っていない場合- 関連項目:
-
countTokens
public int countTokens()例外を生成せずにこのトークナイザのnextTokenメソッドを呼び出せる回数を計算します。 現在の位置は進みません。- 戻り値:
- 現在の区切り文字を適用したときに文字列に残っているトークンの数
- 関連項目:
-