JavaTM 2 Platform
Standard Ed. 5.0

java.util
クラス StringTokenizer

java.lang.Object
  上位を拡張 java.util.StringTokenizer
すべての実装されたインタフェース:
Enumeration<Object>

public class StringTokenizer
extends Object
implements Enumeration<Object>

StringTokenizer クラスを使用すると、アプリケーションで文字列をトークンに分割できます。トークン化のメソッドは、StreamTokenizer クラスで使用されているメソッドよりもさらに簡単です。StreamTokenizer メソッドでは、識別子、数字、引用文字列は区別されません。また、コメントを認識してスキップすることもありません。

区切り文字 (トークンを分ける文字) は、クラスの作成時、またはトークンを得るたびに指定できます。

StringTokenizer のインスタンスは、作成時の returnDelims フラグの値が truefalse かによって、動作が異なります。

StringTokenizer オブジェクトは内部的に、トークン化される文字列内の現在の位置を管理します。いくつかのオペレーションは、この現在の位置を処理された文字の先に進めるものがあります。

トークンは、StringTokenizer オブジェクトを作成するのに使用された文字列の部分文字列を取得することによって返されます。

使用例を次に示します。

 StringTokenizer st = new StringTokenizer("this is a test");
 while (st.hasMoreTokens()) { System.out.println(st.nextToken());
 } 

画面には次のように表示されます。

 this is a test 

StringTokenizer は、互換性を維持する目的で保持されているレガシークラスであり、新規コードでは使用が推奨されていません。この機能の使用を考えているなら、Stringsplit メソッドまたは 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 

導入されたバージョン:
JDK1.0
関連項目:
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 nextToken()
          文字列トークナイザから次のトークンを返します。
 String nextToken(String delim)
          文字列トークナイザの文字列から次のトークンを返します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

StringTokenizer

public StringTokenizer(String str,
                       String delim,
                       boolean returnDelims)
指定された文字列に対する StringTokenizer を作成します。delim 引数内のすべての文字は、トークンを区切るための区切り文字です。

returnDelims フラグが true の場合は、区切り文字もトークンとして返されます。各区切り文字は長さ 1 の文字列として返されます。フラグが false の場合は、区切り文字はスキップされ、トークンを分けるだけのものと見なされます。

delimnull の場合、このコンストラクタは例外をスローしません。ただし、得られた StringTokenizer に対して他のメソッドを呼び出そうとすると、NullPointerException がスローされる場合があります。

パラメータ:
str - 構文解析される文字列
delim - 区切り文字
returnDelims - 区切り文字をトークンに含めるかどうかを示すフラグ
例外:
NullPointerException - str が null の場合

StringTokenizer

public StringTokenizer(String str,
                       String delim)
指定された文字列に対する StringTokenizer を作成します。delim 引数の文字は、トークンを分ける区切り文字です。区切り文字そのものがトークンとして扱われることはありません。

delimnull の場合、このコンストラクタは例外をスローしません。ただし、得られた 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

public String nextToken(String delim)
文字列トークナイザの文字列から次のトークンを返します。最初に、StringTokenizer オブジェクトが区切り文字と見なす文字のセットが、文字列 delim 内の文字になるように変更されます。次に、文字列内の現在の位置の後ろにある次のトークンが返されます。現在の位置は、認識されたトークンを越えて進みます。指定された区切り文字の集合は、この呼び出しのあともデフォルト値として使用されます。

パラメータ:
delim - 新しい区切り文字
戻り値:
新しい区切り文字に切り替えたあとのトークン
例外:
NoSuchElementException - トークナイザの文字列にトークンが残っていない場合
NullPointerException - delim が null の場合

hasMoreElements

public boolean hasMoreElements()
hasMoreTokens メソッドと同じ値を返します。これを使用すると、このクラスに Enumeration インタフェースを実装することができます。

定義:
インタフェース Enumeration<Object> 内の hasMoreElements
戻り値:
トークナイザ文字列で利用できるトークンがまだある場合は true、そうでない場合は false
関連項目:
Enumeration, hasMoreTokens()

nextElement

public Object nextElement()
nextToken メソッドと同じ値を返します。ただし、宣言された戻り値は、String ではなく Object です。これを使用してこのクラスに Enumeration インタフェースを実装することができます。

定義:
インタフェース Enumeration<Object> 内の nextElement
戻り値:
文字列の次のトークン
例外:
NoSuchElementException - トークナイザの文字列にトークンが残っていない場合
関連項目:
Enumeration, nextToken()

countTokens

public int countTokens()
例外を生成せずにトークナイザの nextToken メソッドを呼び出せる回数を計算します。現在の位置は進みません。

戻り値:
現在の区切り文字を適用したときに文字列に残っているトークンの数
関連項目:
nextToken()

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。