Java プログラミング

【Java】文字を分割する方法(split)

ねぇおしえてあげるもん!
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,,,,,

-Java, プログラミング

© 2025 みんもん -みんなの問題- Powered by AFFINGER5