「Java」split関数の使い方などについてご紹介いたします。
Javaで文字列を分割したい時には「split関数」を使用します。
当記事では、Javaを学習中の方に向けて、「split関数」の使い方や注意点などについてご紹介いたします。
split関数とは
split関数とは、文字列を何らかの文字で区切り、配列として返してくれる関数です。「split関数」の基本的な記述の仕方は以下の通りです。
split(分割文字,分割回数)
これだけではよくわからないと思われますので、以下で具体的な例を挙げて解説していきます。
public class Sample {
public static void main(String[] args) {
//文字列を定義
String str = "ネコ,イヌ,トリ,キリン,ウシ";
//split関数を使い「,」で文字列を分割し配列に格納
String[] animals = str.split(",",4);
//配列内の要素を出力
for (int i = 0; i < animals.length; i++) {
System.out.println(animals[i]);
}
}
}
出力結果
ネコ
イヌ
トリ
キリン,ウシ
ひとつずつ解説していきます。
まず、「split関数」のひとつめの引数である、「","」では、「,」で文字列を分割するということを指示しています。
次に2つめの引数である「4」ですが、これは、配列として返した際の要素数を指定しています。
今回は4を指定したので、「ネコ」「イヌ」「トリ」と「キリン,ウシ」のように4つに分割されました。
ちなみに2つめの引数は省略することができまして
public class Sample {
public static void main(String[] args) {
//文字列を定義
String str = "ネコ,イヌ,トリ,キリン,ウシ";
//split関数を使い「,」で文字列を分割し配列に格納(第2引数を省略)
String[] animals = str.split(",");
//配列内の要素を出力
for (int i = 0; i < animals.length; i++) {
System.out.println(animals[i]);
}
}
}
このように記述すると
ネコ
イヌ
トリ
キリン
ウシ
このように「","」が出現した地点すべてが分割され配列として返ります。
分割文字が連続していた場合
「,,」のように分割したい文字が連続していた場合はどういった挙動になるのでしょうか。以下でご紹介いたします。
public class Sample {
public static void main(String[] args) {
//文字列を定義
String str = "ネコ,イヌ,トリ,,";
//split関数を使い「,」で文字列を分割し配列に格納
String[] animals = str.split(",");
//配列内の要素を出力
for (int i = 0; i < animals.length; i++) {
System.out.println(animals[i]);
}
}
}
上記のコードは先ほどの例から「キリン」と「ウシ」の部分を空文字にした状態です。
この状態で出力すると
0 ネコ
1 イヌ
2 トリ
3
4
このように出力されるかと思いきや実際は
0 ネコ
1 イヌ
2 トリ
このように配列の要素数自体が減ってしまいました。
配列の要素数自体を保持したまま空文字を出力したい場合はどのようにすればよいのでしょうか。
配列の要素数を保持したまま出力したい場合は、分割回数の引数に「-1」を指定します。
以下で実際に記述してみます。
public class Sample {
public static void main(String[] args) {
//文字列を定義
String str = "ネコ,イヌ,トリ,,";
//引数に「-1」を指定
String[] animals = str.split(",",-1);
//配列内の要素を出力
for (int i = 0; i < animals.length; i++) {
System.out.println(animals[i]);
}
}
}
出力結果
0 ネコ
1 イヌ
2 トリ
3
4
無事に要素数を保持したまま出力することができました。
なお配列のインデックス番号はわかりやすくするため記述しておりますので、実際には表示されません。
最後に
以上がJavaで「split関数」を使用し、文字列を分割する方法についてのご紹介となります。いかがでしたでしょうか?
「split関数」は、例えば「Java太郎/java.sample@xxxx.co.jp/東京都○○区」このような顧客データなどを扱う際でも、分割文字さえ指定しておけば、分割し配列として格納してくれます。
Javaに限らずプログラミングの学習は実際に書くことが大切ですので、Javaを学習中の方は、実際にエディタで「split関数」を使用し動作を確かめることでより理解が深まることでしょう。