【问题标题】:Last line of input not scanning in Java Scanner ClassJava Scanner 类中的最后一行输入未扫描
【发布时间】:2012-01-06 05:27:02
【问题描述】:

我正在尝试使用扫描仪输入一些东西,但由于某种原因,扫描仪失败了。

我正在运行以下代码,没什么复杂的:

while(scan.hasNextLine())
    {
        System.out.println(scan.nextLine());
    }

就像一个测试平台,以确保所有内容都正确输入。如果我复制我的测试材料,说

5
4
3
2
1

输出省略了最后一行。我很确定这是因为 nextLine 只会返回一个字符串,如果它后面有一个字符串,即使它是空的,但我需要它以这种方式工作,因为我最终将输入数据工作。有谁知道我该如何解决这个问题?我唯一的猜测是要么使用其他扫描仪,要么以某种方式将一个空字符串附加到输入的末尾,但我不知道如何做第二个,而且我不认为有不同的类似扫描仪的东西会工作。提前致谢!

【问题讨论】:

  • 输入是什么,输出是什么?
  • 如果我复制上面显示的 5, 4, 3, 2, 1,它会输出 5, 4, 3, 2
  • 你能再贴一些代码吗?不是很清楚你在做什么。

标签: java java.util.scanner


【解决方案1】:

您的最后一行可能没有“输入”字符。因此它不会将其视为行尾。试试

> 5
> 4
> 3
> 2
> 1
> 

【讨论】:

    【解决方案2】:

    我当时在 Eclipse 上试过这个。我没有复制 Daryl Teo 的建议。与您在 .txt 中提供的输入相同。直接进入标准输入,以及将Scanner 指向输入文件让我得到了你想要的结果,即

    5
    4
    3
    2
    1
    

    您能否按照 cmets 的要求发布更多代码?目前,您遇到的错误似乎与您的 Scanner 无关,听起来很奇怪。

    【讨论】:

      猜你喜欢
      • 2012-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-20
      • 2011-11-13
      • 1970-01-01
      相关资源
      最近更新 更多