-1

分割関数を使用して、入力文字列をスペース文字で文字列配列に分離しようとしましたが、何も起こりませんでした。

私はこのコードを使用しました:

String a;
String[] b = new String[4];
a=input.next(); // input : 1 2 3 4
b=a.split(" "); // or b=a.split("\\s+");
/* output : b[0]=1 , b[1]=Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
*/

しかし、次のような値を定義すると:

String a="1 2 3 4";

すべてが正常に完了しました。

私は何をすべきか?

4

1 に答える 1

2

と仮定するinputScanner...

このnext()メソッドは次のトークンを返し、デフォルトでScannerは入力を空白で区切ります。すでに入力をトークン化しているsplitときは、入力する必要はありません。Scanner

Scanner は、デフォルトで空白に一致する区切り文字パターンを使用して、入力をトークンに分割します。結果のトークンは、さまざまな next メソッドを使用して、さまざまな型の値に変換できます。

または、 を使用input.nextLine()して行全体を取得してから、split自分で行を取得することもできます。

于 2013-07-22T19:57:28.733 に答える