【Java入門】文字列を分割するsplitメソッドの使い方(List化も解説)オータケ2017/1/312019/4/5こんにちは!フリーランスのオータケです。Javaで特定の文字を使って文字列を分割したいと思ったことがありませんか?splitメソッドを使うことで実現できます。正規表現を用いる方法splitの使用上の注意点など具体的な内容についても解説していきます。まとめsplitメソッドとはsplitメソッドは、対象となる文字列を指定した区切り文字によって分割し、それぞれを配列の要素として格納します。splitメソッドは次のように記述します。分割後の要素数)第1引数の区切り文字は、正規表現で指定します。正規表現については後ほど詳しく解説します。第2引数の分割後の要素数は省略することも可能です。省略した場合は、配列の要素数は制限されません。配列の終わりの空の文字列がある場合には破棄されます。第2引数がゼロより大きい場合、配列の要素数は指定した引数の値以下になります。第2引数が負の値の場合には、配列の要素数は制限されず、配列の終わりの空の文字列は削除されません。第2引数がゼロの場合は省略したときと同様に、配列の要素数は制限されずに、後続の空の文字列は破棄されます。apple,orange,melonappleorangemelonここでは文字列をカンマで区切って配列に分割しています。これでsplitメソッドで文字列を分割することができました!末尾の空文字(“”)の要素を除外しない方法ここではsplitメソッドで文字列を分割するときに、末尾の空の要素を削除しない方法を解説します!末尾の空の要素を削除しないようにするには、splitメソッドの第2引数に負の値の”-1”などを指定します。apple,orange,melon,,appleorangemelon配列のサイズ:3appleorangemelon配列のサイズ:52度目の分割では、splitメソッドの第2引数に負の値の”-1”を指定しているため、末尾の空文字の要素が削除されずに残っています。これでsplitメソッドで末尾の空文字(“”)の要素を除外せずに文字列を分割することができました!splitの区切り文字を指定するサンプルコードここでは、splitメソッドを実際に使用する際の参考になるように、様々な区切り文字を指定するサンプルコードを解説していきます。改行コードで文字分割を行う場合は引数に「\n」を指定してあげましょう。}}実行結果:appleorangemelonappleorangemelonタブで分割タブ文字で分割を行う場合は引数に「\t」を指定してあげましょう。空白(半角スペース)で分割を行う場合は、正規表現を使わなければ、そのまま半角スペースを引数に渡してあげるといいでしょう。melonappleorangemelonピリオドで分割ピリオドで分割を行う場合は、引数に「.」を指定してあげても上手くいきません。これはsplitメソッドの第1引数は、正確には正規表現で指定するからです。正規表現で「.」は「何か1文字」を表します。このままではピリオドとして扱われないために、「\\.」として指定します。正規表現については後ほど詳しく説明します。apple.orange.melonappleorangemelonカンマで分割ピリオドで分割を行う場合は引数に「,」を指定してあげましょう。文字列を分割しその結果をListで受け取りたい場合は、splitメソッドを使用後にasListを使って変換することで実現できます。先ほども少し述べましたが、splitメソッドの第1引数は正確には正規表現を指定します。正規表現を使って文字列を分割してみましょう。melon]このサンプルコードでは、正規表現で使われる文字「.」、「*」で指定しています。引数に空文字を指定すると、1文字ずつ分割されます。try-catch文で例外処理を行うか、使用する前にチェックすることをオススメします。null文字列はnullですString型のnullチェックをする方法については、こちらで詳しく解説していますのでぜひ参考にして下さい。2019年4月6日また、Java8の新機能Optionalでのnullチェックができます。こちらで詳しく解説していますのでぜひ参考にして下さい。2017年12月20日まとめいかがでしたか?文字を分割するにはsplitメソッドを使うことで簡単に分割することができました。分割した文字列をListで受け取りたい場合はasListを使うことも覚えておきましょう!TweetPocket無料でSEからWebエンジニアへ転職しませんか?侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、システムエンジニアという職業だけどコードが書けない事務作業が多くスキルがないため将来が不安スクールに通うと完全未経験者と同じスタートになるからレベルが合わないという、すでに知識があるSEならではのお悩みがあることに気づきました。弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。こちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。無料体験レッスンを予約する書いた人オータケ30歳、フリーランスプログラマ。新しいフレームワークやライブラリに興味があり革新的な機能が含まれていると泣いて喜ぶ。