【问题标题】:Splitting a users Entry and store it in an array拆分用户条目并将其存储在数组中
【发布时间】:2019-02-19 18:09:32
【问题描述】:

我正在尝试用空格分割用户条目并将其存储为数组。我正在尝试打印出每个索引中的所有元素,但我收到一个错误提示索引超出范围。

例如,我想打印出"Hello world",我得到一个超出范围的异常:

Scanner scan = new Scanner(System.in);
String command = scan.next();
String[] result = command.split(" ");
System.out.print(result[0]);
System.out.print(result[1]);

【问题讨论】:

  • Scan.next() 只消耗一个令牌。使用 nextLine()

标签: java arrays split


【解决方案1】:

来自 Javadoc:

从这个扫描器中查找并返回下一个完整的令牌。一个完整的标记前后是匹配分隔符模式的输入。

正如Jens 所写,问题在于空格(“”)是令牌终止符,这意味着 scan.next() 只获取第一个单词。如果分隔符是破折号(“-”),这将与 scan.next() 一起使用。无论如何,scan.nextLine() 是您想要读取一行文本的方式。

【讨论】:

    【解决方案2】:

    scan.next() 只会获取您输入的第一个“块”,因此它只会读取“Hello”,您应该使用 scan.nextLine(),您将获得整个“Hello World”。

    但是,您打印答案的方式会打印“HelloWorld”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-06
      • 2014-06-11
      • 1970-01-01
      • 1970-01-01
      • 2013-04-26
      • 1970-01-01
      相关资源
      最近更新 更多