java - 使用 hasNextInt 计算整数

标签 java integer java.util.scanner

我不知道这里有什么问题

import java.util.Scanner;

public class CountingInts {

    public static void main(String args[]) {

          Scanner input = new Scanner(System.in);
          int count = 0;
          System.out.print("Numbers: ");

          while (input.hasNextInt()) {
              int x = input.nextInt();
              count = count + 1;
          }

          System.out.print(count);

          input.close();
    }       
}

我想输入一些整数,例如(1 2 3 4 10) 之间有空格然后数一数有多少个数字。因此,如果输入为“1 2 3 4 10”,则输出为“5”,因为有五个数字。我认为 while 循环可以解决问题,但它似乎永远循环下去。问题是它从不执行 System.out.print(count);在底部:/任何人都知道出了什么问题?

最佳答案

程序1没有问题。问题在于您使用它的方式。我假设您只是像这样运行它:

    java CountingInts

要让它停止,您可以给它一个不是数字的东西(任何东西!),或者您可以告诉控制台驱动程序输入流位于名义上的“文件末尾”


在控制台上发出 EOF 信号的方式取决于平台:

  • 在 Linux、Unix 和 Mac OSX 控制台上,CTRL-D 字符表示 EOF。

  • 在 Windows 控制台上,CTRL-Z 字符表示 EOF。

  • 在 Eclipse 控制台 View 中,EOF 绑定(bind)到 CTRL-D 或 CTRL-Z,具体取决于您的基础平台。

  • 其他 IDE 可能与 Eclipse 相同。

(这些字符绑定(bind)是可以改变的,当然在Linux、Unix和Eclipse的情况下是可以改变的。)


1 - 言过其实:有几个小问题。我还假设要求说程序在看到不是数字的东西时应该停止计数。

关于java - 使用 hasNextInt 计算整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28652259/

相关文章:

java - Android c2dm 未知权限

java - 在 Spring Boot 中将 Servlet 请求注入(inject) Controller

java - 在java中将 float 转换为具有相同位表示形式的整数?

java - 扫描仪混淆错误

java - 方法链接时 try-with-resources 中的 "Resource never closed"

java - 在 Java 中,我应该为不同类型的输入使用不同的 Scanner 实例吗?

java - 编译时音频剪辑不播放

java - 如何使用 Java 从 html 源代码中解析特定信息

c - 如何从包含字符和整数的文本文件中读取整数?

c++ - i+=(i&-i) 是做什么的?它是可移植的吗?