CSVのようなデータレイアウトでは、カンマ区切りでデータが格納されています。
このような場合、それぞれの項目単位に文字列を抽出するためには、区切り文字で文字列を分割する必要があります。
文字列を特定の文字で区切って、配列に格納するサンプル
カンマ区切りのデータとドット区切りのデータ(文字列)を、配列に分割します。
また、それぞれの分割した結果を、標準出力します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | public class SplitStringTest { public static void main(String[] args) { //1つ目 カンマ区切りで文字列を分解 System.out.println("--1つ目--"); String str = "あいう,え,おか,き,くけ,こ"; String[] strArray = str.split(","); for(String s : strArray) { System.out.println(s); } //2つ目 ドット区切りで文字列を分解 System.out.println("--2つ目--"); String str2 = "あいう.え.おか.き.くけ.こ"; String[] strArray2 = str2.split("\\."); for(String s : strArray2) { System.out.println(s); } } } |
実行結果
分割された文字列ごとに改行されて、標準出力されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | --1つ目-- あいう え おか き くけ こ --2つ目-- あいう え おか き くけ こ |
サンプルの解説
String#split(String)を使うと、引数に区切りたい文字を指定するだけで、簡単に文字列を配列に分解することができます。
ただし、splitメソッドの引数に指定する区切り文字は、正規表現になります。
よって、「.」(ドット)で区切りたいような場合、「.」を渡してもうまく分割してくれません。
正規表現に関係するような文字列で分割したい場合は、エスケープ処理が必要になります。
サンプル2つ目のように、例えば「.」で区切りたい場合には、「\.」を渡しましょう。
※「\」はJava文字列ではエスケープしないといけないので、書くときは「\\.」になります。