【java】splitを使って文字列を分割する方法を解説
この記事では、javaのsplitを使って文字列を分割する方法を解説していきます。
Splitを使って文字列を分割する方法は大きく分けて3つあります。
それぞれ初心者でもわかりやすいようにサンプルコード付きで解説していきます。
目次
splitの書き方
Javaのsplitを使って文字列を分割するパターンは大きく分けて下記の3つです。
1:末尾にブランクが入る要素を無視
2:末尾にブランクが入る要素も無視しない
3:分割回数を指定する方法
末尾にブランクが入る要素を無視する構文
例えば下記のような文字列があったとします
1 |
String str = "東京,名古屋,大阪,福岡,,,"; |
それをこのように末尾に入るブランク(空文字)を含めたくない場合がありますよね。
city[1] = 名古屋
city[2] = 大阪
city[3] = 福岡
その場合は下記の2つどちらかを使えば、末尾にブランクが入る要素を無視できます。
第二引数を指定しない
1 |
分割したい文字列.split("区切り文字"); |
第二引数を0にする
1 |
分割したい文字列.split("区切り文字",0); |
末尾にブランクが入る要素も無視しない構文
末尾にブランクが入る要素も無視したくない場合もあると思います。
1 |
String str = "東京,名古屋,大阪,福岡,,,"; |
city[1] = 名古屋
city[2] = 大阪
city[3] = 福岡
ブランクも無視したくない場合は、下記の構文を使います。
第二引数を負の値に設定する
1 |
分割したい文字列.split("区切り文字",負の値); |
分割回数を指定する構文
分割回数を指定したい場合は下記の構文を使います。分割後の要素の数を整数で指定すれば、その数だけ分割されます。
分割後の要素数を設定する
1 |
分割したい文字列.split("区切り文字",分割後の要素数); |
splitを使った例
分割回数を指定する例
Javaのsplitを使って分割回数を指定し、文字列を分割する例を解説していきます。
いくつ分割したいのかを第二引数に整数で設定します。
例えば、2つに分割したい場合は第二引数に2を設定し、3つに分割したい場合は3を設定します。
例を見ていきましょう。
2つに分割する例
1 2 3 4 5 6 7 8 9 10 11 12 |
public class Main { public static void main(String[] args) throws Exception { String str = "東京,名古屋,大阪,福岡"; String[] city = str.split(",", 2); for (int i = 0 ; i < city.length ; i++){ System.out.println("city[" + i + "] = :" + city[i]); } } } |
出力結果
city[0] = :東京
city[1] = :名古屋,大阪,福岡
3つに分割する例
1 2 3 4 5 6 7 8 9 10 11 12 |
public class Main { public static void main(String[] args) throws Exception { String str = "東京,名古屋,大阪,福岡"; String[] city = str.split(",", 3); for (int i = 0 ; i < city.length ; i++){ System.out.println("city[" + i + "] = :" + city[i]); } } } |
出力結果
city[0] = :東京
city[1] = :名古屋
city[2] = :大阪,福岡
分割しない例
1 2 3 4 5 6 7 8 9 10 11 12 |
public class Main { public static void main(String[] args) throws Exception { String str = "東京,名古屋,大阪,福岡"; String[] city = str.split(",", 1); for (int i = 0 ; i < city.length ; i++){ System.out.println("city[" + i + "] = :" + city[i]); } } } |
出力結果
city[0] = :東京,名古屋,大阪,福岡
末尾にブランクが入る要素を無視する例
第二引数を0もしくは記載なし
末尾にブランクが入る要素を無視したい場合、にするか設定しければ無視されます。
また、『区切り文字』がいくつあるのか分からない場合かつ、末尾にブランクが入る要素を無視したい場合にも使えます。
第二引数を0にした例
1 2 3 4 5 6 7 8 9 10 11 12 |
public class Main { public static void main(String[] args) throws Exception { String str = "東京,名古屋,大阪,福岡,,,"; String[] city = str.split(",",0); for (int i = 0 ; i < city.length ; i++){ System.out.println("city[" + i + "] = :" + city[i]); } } } |
出力結果
city[0] = :東京
city[1] = :名古屋
city[2] = :大阪
city[3] = :福岡
第二引数を指定しない例
1 2 3 4 5 6 7 8 9 10 11 12 |
public class Main { public static void main(String[] args) throws Exception { String str = "東京,名古屋,大阪,福岡,,,"; String[] city = str.split(","); for (int i = 0 ; i < city.length ; i++){ System.out.println("city[" + i + "] = :" + city[i]); } } } |
出力結果
city[0] = :東京
city[1] = :名古屋
city[2] = :大阪
city[3] = :福岡
末尾にブランクが入る要素も無視しない例
末尾にブランクが入る要素も無視したくない場合、第二引数に負の値を設定します。
例
1 2 3 4 5 6 7 8 9 10 11 12 |
public class Main { public static void main(String[] args) throws Exception { String str = "東京,名古屋,大阪,福岡,,,"; String[] city = str.split(",",-1); for (int i = 0 ; i < city.length ; i++){ System.out.println("city[" + i + "] = :" + city[i]); } } } |
出力結果
city[0] = :東京
city[1] = :名古屋
city[2] = :大阪
city[3] = :福岡
city[4] = :
city[5] = :
city[6] = :
Ryotin
現役フリーランスエンジニアです。使ってるエージェントはフライテック!得意言語はJava。月収は75万円。SESのフリーランスではこれ以上稼ぐのは厳しそう...とはいってもサラリーマンの時より倍の収入だから家族も喜んでるけどね!