ねぇおしえてあげるもん!
Javaの文字を分割させたいんだけどどーするの?
コツコツ太郎
おしえてあげるもん
そういう時は、splitを使ってみるもん!
splitとは
文字を特定の文字で分割することが出来ます。 例えば、「aaa,bbb,ccc,ddd,eee」を「,」で分割するのであれば以下のように書くと
String str = "aaa,bbb,ccc,ddd,eee"; String[] splitStr = str.split(","); for (int i = 0; i < splitStr.length; i++) { System.out.println("分割" + (i+1) + "回目:" + splitStr[i]); }
実行結果は以下のようになります。
分割1回目:aaa 分割2回目:bbb 分割3回目:ccc 分割4回目:ddd 分割5回目:eee
おしえてあげるもん
空白で分割したり「,」以外の文字で分割できるもん!
色々試してみるもん!
第二引数について
二引数は分割する回数を指定します。 負の値(-1など)を指定した場合、分割する回数は制限なく行われます。 0を指定した場合、末尾の空白文字の要素を除外することが出来ます。
-1の場合
String str = "aaa,bbb,ccc,ddd,eee,,,,,"; String[] splitStr = str.split(",",-1); for (int i = 0; i < splitStr.length; i++) { System.out.println("分割" + (i+1) + "回目:" + splitStr[i]); }
分割1回目:aaa 分割2回目:bbb 分割3回目:ccc 分割4回目:ddd 分割5回目:eee 分割6回目: 分割7回目: 分割8回目: 分割9回目: 分割10回目:
0の場合
String str = "aaa,bbb,ccc,ddd,eee,,,,,"; String[] splitStr = str.split(",",0); for (int i = 0; i < splitStr.length; i++) { System.out.println("分割" + (i+1) + "回目:" + splitStr[i]); }
分割1回目:aaa 分割2回目:bbb 分割3回目:ccc 分割4回目:ddd 分割5回目:eee
「0」を指定した場合は、引数なしの場合と実行結果は同じになります。
String str = "aaa,bbb,ccc,ddd,eee,,,,,"; String[] splitStr = str.split(","); //引数を指定しない場合
3の場合
String str = "aaa,bbb,ccc,ddd,eee,,,,,"; String[] splitStr = str.split(",",3); for (int i = 0; i < splitStr.length; i++) { System.out.println("分割" + (i+1) + "回目:" + splitStr[i]); }
「3」を指定した場合、3つに分割され、以下のように分割されます。
分割1回目:aaa 分割2回目:bbb 分割3回目:ccc,ddd,eee,,,,,