我试图让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);
}
}
答案 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!