JavaでのStringの分割方法とは?、正規表現の指定・分割結果をListで取得・分割数の指定・空要素を排除・1文字ずつ分割

- システム
エンジニア - JavaでのStringの分割にはどのようなメソッドを使用するのでしょうか。
- プロジェクト
マネージャー - Stringの分割にはsplitメソッドを使用します。
JavaでのStringの分割方法とは?
今回は、JavaでのStringの分割方法について説明します。Stringの分割には、splitメソッドを使用します。基本的な使い方、正規表現の指定、分割結果をListで取得、分割数の指定、空要素を排除、1文字ずつ分割について紹介します。
興味のある方はぜひご覧ください。
基本的な使い方
Javaのsplitメソッドの基本的な使い方を紹介します。第1引数に分割文字を指定します。分割結果は配列に格納されます。実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public class Main { public static void main(String[] args) throws Exception { // 文字列 String str = "red,green,blue,yellow,black,white"; // ","で分割し配列に格納 String[] array = str.split(","); // 表示 for (String item : array) { System.out.println(item); } } } |
実行結果は以下のようになります。
1 2 3 4 5 6 |
red green blue yellow black white |
正規表現
Javaのsplitメソッドには、正規表現を指定することもできます。実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public class Main { public static void main(String[] args) throws Exception { // 文字列 String str = "red,green;blue,yellow;black,white"; // ","または";"で分割し配列に格納(正規表現) String[] array = str.split("[,;]"); // 表示 for (String item : array) { System.out.println(item); } } } |
実行結果は以下のようになります。
1 2 3 4 5 6 |
red green blue yellow black white |
このようにJavaのsplitメソッドには、正規表現を指定することもできます。
Listで取得
Javaのsplitメソッドの結果をListで取得する方法を紹介します。実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) throws Exception { // 文字列 String str = "red,green,blue,yellow,black,whilte"; // ","で分割しListに格納 List<String> list = Arrays.asList(str.split(",")); // 表示 System.out.println(list); // [red, green, blue, yellow, black, whilte] } } |
実行結果は以下のようになります。
1 |
[red, green, blue, yellow, black, whilte] |
分割数の指定
Javaのsplitメソッドで分割数を指定する方法を紹介します。splitメソッドの第2引数に分割数を指定します。実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) throws Exception { // 文字列 String str = "red,green,,yellow,black,"; // 第2引数0(デフォルト) List<String> list1 = Arrays.asList(str.split(",", 0)); System.out.println("length:"+ list1.size()); // length:5 System.out.println(list1); // [red, green, , yellow, black] // 第2引数-1(末尾の空要素を排除しない) List<String> list2 = Arrays.asList(str.split(",", -1)); System.out.println("length:"+ list2.size()); // length:6 System.out.println(list2); // [red, green, , yellow, black, ] // 第2引数2(2つに分割) List<String> list3 = Arrays.asList(str.split(",", 2)); System.out.println("length:"+ list3.size()); // length:2 System.out.println(list3); // [red, green,,yellow,black,] } } |
実行結果は以下のようになります。分割数を指定により結果が異なることが分かります。
1 2 3 4 5 6 |
length:5 [red, green, , yellow, black] length:6 [red, green, , yellow, black, ] length:2 [red, green,,yellow,black,] |
空要素を排除
Javaのsplitメソッドで分割後に空要素を削除する方法を紹介します。removeAllメソッドを使用します。実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) throws Exception { // 文字列 String str = "red,green,,yellow,black,"; // ","で分割しListに格納 List<String> list = new ArrayList<>(Arrays.asList(str.split(",", -1))); // 表示 System.out.println(list); // [red, green, , yellow, black, ] // 空要素を削除 list.removeAll(Arrays.asList("", null)); // 表示 System.out.println(list); // [red, green, yellow, black] } } |
実行結果は以下のようになります。空要素が削除されていることが分かります。
1 2 |
[red, green, , yellow, black, ] [red, green, yellow, black] |
1文字ずつ分割
Javaのsplitメソッドで1文字ずつ分割する方法を紹介します。実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) throws Exception { // 文字列 String str = "red,green,blue,yellow,black,white"; // ","で分割しListに格納 List<String> list = Arrays.asList(str.split("")); // 表示 System.out.println(list); // [r, e, d, ,, g, r, e, e, n, ,, b, l, u, e, ,, y, e, l, l, o, w, ,, b, l, a, c, k, ,, w, h, i, t, e] } } |
実行結果は以下のようになります。
1 |
[r, e, d, ,, g, r, e, e, n, ,, b, l, u, e, ,, y, e, l, l, o, w, ,, b, l, a, c, k, ,, w, h, i, t, e] |
- システム
エンジニア - JavaでのStringの分割方法が理解できました。
- プロジェクト
マネージャー - 基本的な使い方や正規表現の指定など、用途に合わせて使い分けましょう。
まとめ
いかがでしたでしょうか。JavaでのStringの分割方法について説明しました。ここでは、基本的な使い方、正規表現の指定、分割結果をListで取得、分割数の指定、空要素を排除、1文字ずつ分割について紹介しました。
ぜひご自身でJavaのソースコードを書いて、理解を深めてください。
FEnetJava・Javaコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。

-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。


Java新着案件New Job
官公庁向け業務システム開発/Java/東京都千代田区/【WEB面談可】/テレワーク
月給39万~44万円東京都千代田区(永田町駅)販売管理システム開発/Java/東京都中央区/【WEB面談可】/テレワーク
月給49万~55万円東京都中央区(京橋駅)生命保険会社向けシステム開発/Java/東京都千代田区/【WEB面談可】/テレワーク
月給42万~48万円東京都千代田区(大手町駅)社会保険システムのパッケージ開発/Java/東京都港区/【WEB面談可】/テレワーク
月給42万~48万円東京都港区(新橋駅)金融機関向けシステム更改/Java/東京都江東区/【WEB面談可】/テレワーク
月給46万~51万円東京都江東区(豊洲駅)大手通信会社者向けWebシステム改修/Java/東京都港区/【WEB面談可】/テレワーク
月給42万~48万円東京都港区(品川駅)