分裂字符串问题的数组

时间:2014-05-16 05:44:04

标签: java string input split output

您好我使用以下java代码将用户输入拆分为单个单词 -

String command = scanner.next();
command = command.toLowerCase();
String[] words = command.split(" ");
  • 但是当我尝试为两个或更多单词的输入打印“words [1]”时,它会抛出一个ArrayIndexOutOfBoundsException。似乎单词[1]只是句子中的第二个单词,但数组不包含它。

3 个答案:

答案 0 :(得分:3)

而不是scanner.next(),请尝试

String command = scanner.nextLine();

这将确保您阅读所有单词。

答案 1 :(得分:2)

来自Scanner API

  

扫描程序使用分隔符模式将其输入分解为标记,分隔符模式默认匹配空格。

Scanner#next()的javadoc声明:

  

查找并返回此扫描仪的下一个完整令牌。在完成令牌之前和之后是与分隔符模式匹配的输入。

因此,在您的情况下,scanner.next()会返回一个没有空白的单词,因为空格是您的扫描程序可能知道何时停止扫描。

您可能希望使用Scanner#nextLine()或类似的东西。

答案 2 :(得分:0)

试试这个,并确保你已阅读所有输入词

Scanner scanner = Scanner(System.in);
String command = scanner.nextLine();
command = command.toLowerCase();
String[] words = command.split(" ");

现在你可以打印

words[1]

如果您有有效的索引值,