2013-07-22 95 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