首页 > 解决方案 > Scanner.next() 在循环中接收超过 1 个单词

问题描述

我正在我的 java 类中制作游戏,我试图询问用户他们想要玩什么样的难度。但是,由于它处于循环中,因此似乎包含了IN.next()超过 1 个单词。我如何让它只取第一个单词?

public int configureDifficulty() {      
    String level = "1";
    println("At what difficulty would you like to play at?");
    println("Type 1 for easy, 2 for medium, 3 for hard.");

    while (true) {

        level = IN.next();
        try {
            return Integer.parseInt(level);
        }
        catch (NumberFormatException ex) {
            println("Try again");
        }
    }
}

安慰

At what difficulty would you like to play at?
Type 1 for easy, 2 for medium, 3 for hard. 
test test test test test
Try again
Try again
Try again
Try again
Try again

即使用户输入超过 1 个单词,如何让我的程序只打印一个“再试一次”行?

标签: javawhile-loopjava.util.scanneruser-input

解决方案


如果你想处理在同一行输入的单词,你必须使用nextLine扫描仪中的方法。该方法将返回一个字符串,然后您将不得不解析和编写逻辑。


推荐阅读