(Java)Switch / Case with Enter

时间:2016-03-04 02:47:20

标签: java switch-statement java.util.scanner

我需要有关switch的帮助,这是我需要帮助的代码的一部分。

Scanner kb = new Scanner(System.in);
do
    {
        System.out.println("\nAt each turn, type: ");
        System.out.println("P to print");
        System.out.println("M to mix (shuffle the cards)");
        System.out.println("S to save");
        System.out.println("Q to quit");
        System.out.println("Just ENTER to play a turn");

        meun = kb.nextLine();


        switch (meun)
        {
            case ("P"):
            case ("p"):     System.out.println("\nPlayer1 cards: " + p1.toString());
//More Codes...
            case (//Would like to have an ENTER here.):

如何在P之后的下一个案例中获得“输入”。我想要的是,如果用户只是按下Enter键,那么程序将再次播放。我在考虑做String.valueOf(kb.nextLine()),但这不起作用。

感谢您的帮助。

3 个答案:

答案 0 :(得分:4)

在您的情况下,您应该检查en 空字符串,因为只需输入实际上会将空字符串返回Scanner.nextLine()

    switch (meun)
    {
    case "":
         // Next turn.
    }

答案 1 :(得分:2)

只需使用空字符串,例如:

case "" : System.out.println("Blah, blah, blah...");

或者将“”更改为KeyCodes.KEY_ENTER或只有13才能正常工作。 并将输入从String更改为char。

答案 2 :(得分:1)

对于控制台输入,按Enter键会将命令发送到标准输入,也不是可以放在switch中的字符。对于你的情况,最简单的方法是使用t之类的其他角色进行转弯。

如果您要实现key listener,则可以将输入键检测为输入,但这似乎对您的程序需求来说是过度的。

编辑:其他的回答者已经提供了更有用的答案!