如何让Java只查看y或n这样的第一个字母?

时间:2017-06-29 21:55:13

标签: java equals

我试图让java对答案作出反应而不管以下字母我只是想让它看到" y / Y"或" n / N"并采取相应行动。我希望它能够识别"是的"或者"是的"而不是"是"因为他们都以' y开头。我该怎么做?

public static void reMatch(Scanner scan, Random rand, int gameCount, int 
totalCount) {
        System.out.println("Would you like to play again?");
        String answer = scan.next();    
        if (answer.equalsIgnoreCase("y")) {
            gameCount++;
            game(scan, rand, gameCount, totalCount);
        }
        else if (answer.equalsIgnoreCase("n")) {
            results(gameCount, totalCount);
        }

    }

3 个答案:

答案 0 :(得分:2)

您需要测试字符串中第一个char的值并相应地执行操作。

   if (answer.charAt(0)=='y' || answer.charAt(0)=='Y') {
        gameCount++;
        game(scan, rand, gameCount, totalCount);
    }
    else if (answer.charAt(0)=='n' || answer.charAt(0)=='N') {
        results(gameCount, totalCount);
    }
    else {
     //do something else
    }

修改:强烈建议您使用if (answer.substring(0, 1).equalsIgnoreCase("y"))代替@Coldspeed建议

答案 1 :(得分:0)

尝试:

.proto

答案 2 :(得分:0)

正如@ElliotFrisch在评论中所说,你可以使用startsWith。大多数答案的意思是“是”,例如“是的”,“是的”,或者只是简单的“是”,所以我建议这样的事情:

if (answer.toLowerCase().startsWith("ye")) {
    System.out.println("your answer stared with \"ye\"");
} else {
    System.out.println("your answer did not start with \"ye\"");
}

但是你也可以使用:

if (answer.toLowerCase().startsWith("y")) {

如果您只想测试第一个字母。

  

P.S.谢谢Elliot Frisch!