文字列の分割

アイキャチ画像
2023/01/21
2023/01/21
gb3hSAtK

Javaで文字列を分割する方法をいくつかご紹介します。

今回の記事ではJavaにおける、文字列の分割をする方法を紹介します。

splitメソッド

JavaのStringクラスには引数に指定された正規表現で文字を分割し、String型の配列で値を返してくれるメソッドがあります。

このメソッドを使うことで下記のように文字列を分割することが可能です。

カンマ区切りで文字列を分割する

String str = "hoge1,hoge2,hoge3";
String[] strList = s.split(",");

//  strListの中身 [実行結果]
[hoge1, hoge2, hoge3]

数値とカンマ以外の文字列で分割する

String str = "hoge1,hoge2,hoge3";
String[] strList = str.split("[0-9],?");

//  strListの中身 [実行結果]
[hoge, hoge, hoge]

指定した文字ごとに分割

String str = "hogehogehoge";
String[] strList = str.split("e");

//  strListの中身 [実行結果]
[hog, hog, hog]

splitメソッドまとめ

このように指定した正規表現で文字列を分割できるので、CSVファイルやフォーマットにパターンがある文字列で利用することが可能です。

【役割】
splidメソッドは文字列をString型の配列に変換できる

【使い方】
 判定対象.split("正規表現")

【注意点】
・利用する際はインスタンス化した文字列からsplitメソッドを実行する
・引数は正規表現で指定する

StringTokenizerクラス

StringTokenizerクラスは引数に指定された文字列を元に、StringTokenizerオブジェクトを返します。

このStringTokenizerオブジェクトには、オブジェクト内の分割された文字列を取得するメソッドが用意されています。

カンマ区切りで文字列を分割する

String str = "hoge1,hoge2,hoge3";
StringTokenizer st = new StringTokenizer(str,",");

while(st.hasMoreTokens()) {
    System.out.println(st.nextToken());
}

//  コンソール [実行結果]
hoge1
hoge2
hoge3

主要メソッド

StringTokenizerで知っておくべきメソッドは全部で3つです。

※3つ以外にもあるので気になる方は調べてみてください。

メソッド名返り値の型説明
hasMoreTokens()boolean次返せる文字列があるか真偽値で返す
nextToken()String分割した文字列を1つ返す
countTokens()int分割した文字列の個数を返す

StringTokenizerクラスまとめ

このように指定した文字列で文字列を分割できますが、splitメソッドは違い1つ1つ文字列を取得する必要があります。

for分やwhile文などでループ処理が必要なので、オブジェクト自体もイテレーターのような特性を持っています。

【役割】
StringTokenizerクラスは文字列をオブジェクトに変換できる

【注意点】
・利用する際はオブジェクトに実装されているメソッドを利用して分割した文字列を引き出す必要がある
・引数は文字列で指定するので正規表現は使えない