Java字符空字符检测

时间:2015-06-09 13:16:47

标签: java char

是的,所以我在eclipse上使用java并不断遇到问题。我试图解决的是当用户被提升为按任意键时。当密钥输入且没有Char时,程序会因为无法找到某个字符而崩溃。

我的代码是:

Scanner scan = new Scanner(System.in);
    Game game = new Game();
    char quit=' ';

    while (quit != 'N') 
    {
        game.play();

        System.out.println("Play again? Press any key to continue, or 'N' to quit");
        quit = scan.nextLine().toUpperCase().charAt(0);

    }

按下输入时,由于没有输入字符,它会停止程序。有没有办法解决这个问题,让按下enter后程序继续?

3 个答案:

答案 0 :(得分:2)

我会这样写:

    Scanner scan = new Scanner(System.in);
    String line;

    do{
        game.play();
        System.out.println("Play again? Press any key to continue, or 'N' to quit");
        line = scan.nextLine();

    }while (line.isEmpty() || line.toUpperCase().charAt(0) != 'N');

答案 1 :(得分:1)

您可以检查长度:

while (quit != 'N') 
{
    game.play();

    System.out.println("Play again? Press any key to continue, or 'N' to quit");
    String test = scan.nextLine().toUpperCase();
    if(test != null && test.length() > 0)
    {
       quit = test.toUpperCase().charAt(0);
    }
    else
    {
         //handle your else here
         quit = ' '; //this will keep it from terminating
    }
}

将下一行存储在字符串中,然后检查以确保它不为空且其长度至少为1.如果是,则获取第一个字符。如果没有,那么决定你想如何处理这种情况。

答案 2 :(得分:0)

我们可以写下:{/ p>而不是quit = scan.nextLine().toUpperCase().charAt(0);

String str = scan.nextLine().toUpperCase();
quit = ((str == null || "".equals(str)) ? ' ' : str.charAt(0));