当前位置: 首页 > 知识库问答 >
问题:

使用带整数序列的扫描器

梁丘波
2023-03-14
1 5 3 4 5 5 5 4 3 2 5 5 5 3
0 - 0
1 - 1
2 - 1
3 - 3
4 - 2
5 - 7
6 - 0
7 - 0
8 - 0
9 - 0
public static void main (String args[])
{
    Scanner chopper = new Scanner(System.in);
    System.out.println("Enter a list of number: ");

    int[] numCount = new int[10];
    int number;

    while (chopper.hasNextInt()) {
        number = chopper.nextInt();
        numCount[number]++;
    }

    for (int i = 0; i < 10; i++) {
        System.out.println(i + " - " + numCount[i]);
    }
}

但是在输入序列之后,我们必须键入一个非整数字符并按“Enter”来终止扫描程序并执行“for”循环。有没有什么方法我们不必键入一个非整数字符来终止扫描仪?

共有1个答案

谢雅珺
2023-03-14

按Enter键后跟Control-D键就可以出去了。

如果您不想这样做,那么使用扫描器就没有其他方法了。

您必须通过其他方式读取输入,例如使用BufferedReader:

String line = new BufferedReader(new InputStreamReader(System.in)).readLine();
Scanner chopper = new Scanner(line);
Scanner chopper = new Scanner(new Scanner(System.in).nextLine());
 类似资料:
  • 在这段代码的第4行,有一个资源泄漏警告。输入=扫描(); 我想要一个从用户那里获取整数的方法。它会要求用户重新输入一个整数值,如果他以前输入的值是不可接受的,即字符、规格。字符等。此外,我想在返回所取的int之前关闭扫描仪。 如何解决这个问题?

  • 我必须使用扫描仪输入未知数量的数字。一旦用户输入-1,程序需要打印输入的所有数字的总和,然后结束程序。总和中需要包含-1。 我不能得到正确的总数。有人能帮忙吗?

  • 我正在为一个CS项目做一个游戏,其中一个要求是只有一个扫描仪为人类输入。如果我创建一个抽象类“Player”,它有一个扫描器对象,并创建两个扩展“Player”的“人类”类,它们是各自有自己的扫描器,还是共享“Player”扫描器?另外,当我结束游戏时如何关闭扫描仪?

  • 因此,在调用一个我将在下面发布的函数(在main中)后,在同一个main中创建一个新的扫描器对象不起作用,并给了我以下错误: 它就放在我调用函数之后(在上面的代码中,我会关闭扫描器)。当我注释掉调用函数时,这个扫描器工作了,所以函数中的一些东西导致了扫描器中的错误。我花了几个小时寻找,但无法解决它,如果有人可以,我会非常感激。函数: (当我测试它时,我总是输入2)我尝试删除do-while循环,但

  • 我试图使用Jenkins、FxCop和Sonarqube分析一个C#项目。目前,我使用的构建步骤是“用于MSBuild-Begin Analysis的Sonarqube Scanner”、“FxCop Exec.”、“使用MSBuild构建Visual Studio项目或解决方案”和“用于MSBuild-End Analysis的Sonarqube Scanner”。当FxCop和SonarQub

  • Player类如下所示: 前面的main方法(它使用多个扫描器,包括try-with-recours,没有任何错误或异常)如下所示: