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, 2014, Oracle and/or its affiliates. All rights reserved.