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