gpt4 book ai didi

java - 如何让 Java 的 hasNextInt() 停止等待整数而不输入字符?

转载 作者:行者123 更新时间:2023-12-01 15:43:25 25 4
gpt4 key购买 nike

我得到了以下代码,并要求编写从 TestList 扩展的解决方案类。我为它编写了一个构造函数(刚刚称为 super),并在下面代码的最后一行中调用了 printSecond2() 方法。所有其他方法都是继承的。代码如下:

public class Test3A {
public static void main(String[] args) {
TestList tl = new Solution();
tl.loadList();
((Solution) (tl)).printSecond2();//prints every second element
}
}

然而,该死的事情从来没有打印出任何东西,所以我进入了 TestList 类(已提供)并在 loadList () 方法的每一行后面添加了 println 语句:

   public void loadList ()
{
if (input.hasNextInt ())//input is a Scanner object
{
int number = input.nextInt ();
loadList ();
add (number);
}
}

我发现我可以无限地继续添加空格、换行符和整数,并且只有在输入字符时才会最终调用 add(number) 方法。因此,如果我不这样做,它就会一直等待更多输入,而不是继续前进。

我对此感到困惑,因为提供的示例输入/输出是:

示例输入

1 2 3 4 5

示例输出

2 4

因此自动标记器没有输入任何字符。

我尝试重写解决方案中的方法(我们无法触及其他类)并且:

  1. ) 将 if 更改为 while
  2. ) 添加 else block
  3. ) 添加 else if (!input.hasNextInt ())

这些都没有改变任何事情。我不知道程序应该如何继续并调用 printSecond2()

有什么想法吗?我真的很想通过下一次实践测试:D

最佳答案

当用户应该输入一系列数字时,要么应该提供项目的数量,要么应该以某种方式终止输入。 1 2 3 和 1 2 3 4 都是有效输入,因此扫描仪无法自行决定在哪里结束。可以假设数字序列在 Windows 上以 EOF 字符 Ctrl-Z 终止,在 unix 上以 Ctrl-D 终止,因为没有给出其他信息。

关于java - 如何让 Java 的 hasNextInt() 停止等待整数而不输入字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7613526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com