StringTokenizer
日本語 | 文字列細々者 |
英語 | string tokenizer |
ふりがな | すとりんぐとーくないざー |
フリガナ | ストリングトークナイザー |
J2SEに含まれるクラスのひとつ。パッケージも含めたクラス名はjava.util.StringTokenizer。
文字列を分割するためのクラス。
文字列が「特定の文字列」で区切られている場合に、その特定の文字列で分割して、ひとつずつ取得するためのクラス。
コンストラクタの第1引数に対象の文字列を、第2引数に分割文字列を指定することで分割される。
その後、nextToken()メソッドで分割後の文字列を1つ1つ取得することができる。最後まで取得したか、はhasMoreTokens()メソッドでチェックする。
同様に文字列の分割を行う方法として、Stringクラスのsubstring()メソッドを使用する方法がある。StringTokenizerは分割する文字列が含まれていないと分割できないが、substring()メソッドは特定の文字数で分割することができる。
また、正規表現を用いても分割することができる。正規表現を使用することで複雑な分割が行えるが、正規表現のための文字列を作る必要があり、また、正規表現は処理が重いため連続して行う処理には向かない。
これらを、分割対象となる文字列の性質等を考慮して選択するのがいいだろう。
文字列を分割するためのクラス。
文字列が「特定の文字列」で区切られている場合に、その特定の文字列で分割して、ひとつずつ取得するためのクラス。
コンストラクタの第1引数に対象の文字列を、第2引数に分割文字列を指定することで分割される。
その後、nextToken()メソッドで分割後の文字列を1つ1つ取得することができる。最後まで取得したか、はhasMoreTokens()メソッドでチェックする。
同様に文字列の分割を行う方法として、Stringクラスのsubstring()メソッドを使用する方法がある。StringTokenizerは分割する文字列が含まれていないと分割できないが、substring()メソッドは特定の文字数で分割することができる。
また、正規表現を用いても分割することができる。正規表現を使用することで複雑な分割が行えるが、正規表現のための文字列を作る必要があり、また、正規表現は処理が重いため連続して行う処理には向かない。
これらを、分割対象となる文字列の性質等を考慮して選択するのがいいだろう。
参考サイト
// Sample.java
import java.util.StringTokenizer;
public class Sample
{
public static void main( String[] args )
{
// 文字列を分割します。
// 分割はコンストラクタで速攻行われます。
// 第1引数に対象の文字列を渡します。
// 第2引数に分割文字列を渡します。
String source = "http://www.kab-studio.biz/Programing/JavaA2Z/index.html";
String delimiter = "/";
StringTokenizer stringTokenizer = new StringTokenizer( source, delimiter );
// もう取得する要素がないとhasMoreTokens()メソッドはfalseを返します。
while( stringTokenizer.hasMoreTokens() )
{
// 分割した各要素を取得します。
String current = stringTokenizer.nextToken();
// 出力します。
System.out.println( current );
// http:
// www.kab-studio.biz
// Programing
// JavaA2Z
// index.html
}
}
}
import java.util.StringTokenizer;
public class Sample
{
public static void main( String[] args )
{
// 文字列を分割します。
// 分割はコンストラクタで速攻行われます。
// 第1引数に対象の文字列を渡します。
// 第2引数に分割文字列を渡します。
String source = "http://www.kab-studio.biz/Programing/JavaA2Z/index.html";
String delimiter = "/";
StringTokenizer stringTokenizer = new StringTokenizer( source, delimiter );
// もう取得する要素がないとhasMoreTokens()メソッドはfalseを返します。
while( stringTokenizer.hasMoreTokens() )
{
// 分割した各要素を取得します。
String current = stringTokenizer.nextToken();
// 出力します。
System.out.println( current );
// http:
// www.kab-studio.biz
// Programing
// JavaA2Z
// index.html
}
}
}
// Sample.java import java.util.StringTokenizer; public class Sample { public static void main( String[] args ) { // 文字列を分割します。 // 分割はコンストラクタで速攻行われます。 // 第1引数に対象の文字列を渡します。 // 第2引数に分割文字列を渡します。 String source = "http://www.kab-studio.biz/Programing/JavaA2Z/index.html"; String delimiter = "/"; StringTokenizer stringTokenizer = new StringTokenizer( source, delimiter ); // もう取得する要素がないとhasMoreTokens()メソッドはfalseを返します。 while( stringTokenizer.hasMoreTokens() ) { // 分割した各要素を取得します。 String current = stringTokenizer.nextToken(); // 出力します。 System.out.println( current ); // http: // www.kab-studio.biz // Programing // JavaA2Z // index.html } } }