【问题标题】:Trouble With hasNext() in JavaJava 中 hasNext() 的问题
【发布时间】:2014-05-01 02:52:55
【问题描述】:

我正在尝试编写一个程序来读取成对的单词并输出相同单词对的数量。假设输入了偶数个单词。当我运行我的代码时,它不会输出任何内容。它似乎一直在运行。当我输入完单词后按 Ctrl-Z 时,它要么返回“0”,要么什么都不返回。关于如何使我的程序正常运行的任何想法?谢谢。

编辑:它在命令提示符下运行良好,但在 Eclipse 中却不行。

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int counter = 0;

        while (input.hasNext()) { 

            String string1, string2; 
            string1 = input.next();
            string2 = input.next();

            if (string1.equals(string2)) {
                ++counter;  
            }   

        }
        System.out.println(counter);
    }

【问题讨论】:

    标签: java eclipse string input while-loop


    【解决方案1】:

    对我来说,它在 Eclipse 中并没有真正起作用(对于我读过的内容,在 netbeans 中也没有),要测试你的代码是否真的运行良好,你应该这样做: (在 Windows 中)打开命令提示符(执行 ...“cmd”+ Enter) 然后用

    编译你的类或类
    javac YourClass.java
    

    如果没有错误,它只会让你输入一个没有消息的新命令,然后

    java YourClass
    

    然后您可以尝试在 windows 中使用 Ctrl + z(在 linux 中为 ctrl + d),这将打印 ^Z 字符,然后按回车键。

    希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      您询问了一次hasNext(),但随后呼叫了两次next()。如果没有更多元素,第二个 next() 可能会失败。

      【讨论】:

      • 哦,好吧,这是有道理的。你会如何建议解决这个问题?我是 Java 新手。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-11
      • 2016-09-14
      • 2019-12-27
      • 2013-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多