Java 如何检查是否输入了四个字符串中的一个?

Java 如何检查是否输入了四个字符串中的一个?,java,if-statement,while-loop,Java,If Statement,While Loop,我在寻找一条语句,检查输入是否为:yes,y,no,n。 它也应该忽略是否有大的或小的字母。我在这里搜索了一段时间,但找不到我能理解的答案。有没有一种方法可以在if语句中添加更多的内容,而不仅仅是“yes” String result; do { System.out.print("Bigger the better"); result = scanner.nextLine(); if (!("yes".equals(result))) {

我在寻找一条语句,检查输入是否为:yes,y,no,n。 它也应该忽略是否有大的或小的字母。我在这里搜索了一段时间,但找不到我能理解的答案。有没有一种方法可以在if语句中添加更多的内容,而不仅仅是“yes”

    String result;
    do {
    System.out.print("Bigger the better");
    result = scanner.nextLine();
        if (!("yes".equals(result))) {
            System.out.println("Invalid answer, try again");
        }
    } while(!result.matches("[A-ZÅÄÖa-zåäö]+"));

您可以使用双管道| |或您的条件,如下所示:

if (result.equals("yes") || result.equals("no") || result.equals("y") || result.equals("n"))

您可以使用双管道| |或您的条件,如下所示:

if (result.equals("yes") || result.equals("no") || result.equals("y") || result.equals("n"))

通过以下方式将结果简化为小写:

result.toLowerCase()

然后,您可以通过使用equals()和'or'(| | |)与任何字符串(“yes”、“no”、“y”、“n”)进行比较。

通过以下方式将结果简化为小写:

result.toLowerCase()
然后,您可以使用equals()和'or'(| | |)与任何字符串(“yes”、“no”、“y”、“n”)进行比较。

您可以使用

if (result.matches("(?i)Y(es)?|N(o)?")) {
  ...
你可以用

if (result.matches("(?i)Y(es)?|N(o)?")) {
  ...
它将检查用户是否键入“是”或普通“y”,或“否”或普通“n”


它将进行检查。用户将键入“是”或普通的“y”,或“否”或普通的“n”

您只能检查第一个字母中的“y”或“n”,但您将允许更多的单词作为有效答案。但这将避免单独检查每个允许的单词。您只能检查第一个字母的“y”或“n”,但您将允许更多的单词作为有效答案。但这将避免单独检查每个允许的单词。这也将允许
“york”
“new york”
作为有效输入。在回答中可能值得注意的是,此解决方案不限于“是”、“y”、“否”或“n”。顺便说一句:您的代码中的
b
是什么?这也允许
“york”
“newyork”
作为有效输入。在回答中可能值得注意的是,此解决方案不限于“是”、“y”、“否”或“n”。顺便说一句:你的代码中的
b
是什么?