- すべての実装されたインタフェース:
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
メソッドを呼び出せる回数を計算します。boolean
hasMoreTokens
メソッドと同じ値を返します。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
メソッドを呼び出せる回数を計算します。 現在の位置は進みません。- 戻り値:
- 現在の区切り文字を適用したときに文字列に残っているトークンの数
- 関連項目:
-