2013-07-22 33 views
-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"; 

一切都順利完成。

我該怎麼辦?

+7

'input.next()'不會返回您認爲的內容。什麼類型是「輸入」? – SLaks

+1

假設'input'是一個'Scanner'引用,你應該使用'input.nextLine()'。 –

回答

2

假設inputScanner ...

next()方法將返回下一個標記,默認情況下,Scanner separates input by whitespace。當Scanner已經爲您標記輸入時,您不需要輸入split

掃描器斷開其輸入到使用定界符圖案, 它默認與空白匹配。然後可以使用各種下一個 方法將所得令牌轉換爲不同類型的值。

或者,您可以使用input.nextLine()來獲得整個行,然後您可以split行自己。

+0

非常感謝 – HAMED