単語の切り出し - 欧米の言語の場合
- 欧米の言語など、単語と単語の間に空白を置く言語では、単語の切り出しは容易。
- Javaには文字列をトークン(意味を持つ最小の記号列)に分割するクラス java.util.StringTokenizer があり、これが利用できる。
- 場合によっては語尾が変化しているので、元の形に戻す必要がある(stemmerと呼ばれるプログラムを利用する)。
StringTokenizer のコンストラクタ
- StringTokenizer(String str)
- 指定された文字列 str に対する StringTokenizer を作成。
区切り文字には " \t\n\r\f" (空白文字、タブ文字、改行文字、復帰改行文字、用紙送り文字)
が使われる。
- StringTokenizer(String str, String delim)
- 指定された文字列 str に対する StringTokenizer を作成。
delim 引数内のすべての文字は、トークンを区切るための区切り文字。
- StringTokenizer(String str, String delim, boolean returnDelims)
- 指定された文字列 str に対する StringTokenizer を作成。
delim 引数内のすべての文字は、トークンを区切るための区切り文字。
returnDelims フラグが true の場合は、区切り文字もトークンとして返される。
StringTokenizer のメソッド
Iterator のように使用することができる。
- boolean hasMoreTokens()
- トークナイザの文字列で利用できるトークンがまだあるかどうかを判定する。
- String nextToken()
- 文字列トークナイザから次のトークンを返す。
コード例
import java.util.StringTokenizer;
...
String string;
...
(string に何か代入)
...
StringTokenizer tokenizer = new StringTokenizer(string, " .,:;");
while(tokenizer.hasMoreTokens()) {
String term = tokenizer.nextToken();
System.out.println(term);
}