- すべての実装されたインタフェース:
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
- 導入されたバージョン:
- 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の文字列として返されます。 フラグがfalseの場合は、区切り文字はスキップされ、トークンを分けるだけのものと見なされます。delimがnullの場合、このコンストラクタは例外をスローしません。 ただし、結果となるStringTokenizerに対してほかのメソッドを呼び出そうとすると、NullPointerExceptionがスローされる場合があります。- パラメータ:
str- 解析される文字列delim- 区切り文字returnDelims- 区切り文字をトークンとして返すかどうかを示すフラグ。- throws:
NullPointerException- strがnullの場合
-
StringTokenizer
指定された文字列に対するStringTokenizerを作成します。delim引数内の文字は、トークンを区切るための区切り文字です。 区切り文字は、それ自体がトークンとして処理されることはありません。delimがnullの場合、このコンストラクタは例外をスローしません。 ただし、結果となるStringTokenizerに対してほかのメソッドを呼び出そうとすると、NullPointerExceptionがスローされる場合があります。- パラメータ:
str- 解析される文字列delim- 区切り文字- throws:
NullPointerException- strがnullの場合
-
StringTokenizer
public StringTokenizer(String str) 指定された文字列に対するStringTokenizerを作成します。 トークナイザはデフォルトの区切り文字セットを使います。このセットは" \t\n\r\f"で、スペース文字、タブ文字、改行文字、復帰文字、および用紙送り文字から構成されます。 区切り文字は、それ自体がトークンとして処理されることはありません。- パラメータ:
str- 解析される文字列- throws:
NullPointerException- strがnullの場合
-
-
メソッドの詳細
-
hasMoreTokens
public boolean hasMoreTokens()トークナイザの文字列で利用できるトークンがまだあるかどうかを判定します。 このメソッドがtrueを返す場合、それ以降の引数のないnextTokenへの呼出しは正常にトークンを返します。- 戻り値:
- 文字列内の現在の位置の後ろに1つ以上のトークンがある場合だけ
true、そうでない場合はfalse。
-
nextToken
public String nextToken()文字列トークナイザから次のトークンを返します。- 戻り値:
- 文字列トークナイザからの次のトークン
- throws:
NoSuchElementException- このトークナイザの文字列にトークンが残っていない場合
-
nextToken
文字列トークナイザの文字列から次のトークンを返します。 最初に、このStringTokenizerオブジェクトが区切り文字と見なす文字のセットが、文字列delim内の文字になるように変更されます。 次に、文字列内の現在の位置の後ろにある次のトークンが返されます。 現在の位置は、認識されたトークンを越えて進みます。 指定された区切り文字の集合は、この呼出しのあともデフォルト値として使用されます。- パラメータ:
delim- 新しい区切り文字。- 戻り値:
- 新しい区切り文字に切り替えたあとのトークン
- throws:
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>- 戻り値:
- 文字列の次のトークン
- throws:
NoSuchElementException- このトークナイザの文字列にトークンが残っていない場合- 関連項目:
-
countTokens
public int countTokens()例外を生成せずにこのトークナイザのnextTokenメソッドを呼び出せる回数を計算します。 現在の位置は進みません。- 戻り値:
- 現在の区切り文字を適用したときに文字列に残っているトークンの数
- 関連項目:
-