我得到了两个字符串的表:

String[] tab = {"why","Why"};


我想让他们看看是否有人问的问题与我的选项卡[]中的单词不同:

for (int i = 0; i < tab.length; i++) {
            if(!message.startsWith(tab[i])){
                System.out.println("Ask using why or Why");
                break;
            }
            }


当我输入输入内容:“为什么天气不好?”时,它返回:“询问为什么或为什么”。
另外,当我键入:“你好吗?”时,它还会返回“使用Why(为什么)或Why(为什么)”进行询问。

我希望该程序仅允许以“为什么”或“为什么”开头的问题。

我究竟做错了什么?

最佳答案

你在做什么:


与第一个条目匹配
如果不匹配,则向用户显示该消息并中止。


您想做什么:


与第一个条目匹配。
如果不匹配,请尝试下一个条目。
如果没有匹配的条目,则向用户显示一条消息并中止。


这是一个例子:

boolean found = false;

for (int i = 0; i < tab.length; i++) {
    if(message.startsWith(tab[i])){
        found = true;
        break;
    }
}

if (!found) {
    System.out.println("Ask using why or Why");
}


在您的特定实例中,您也可以只检查字符串的小写形式:

if (!message.toLowerCase().startsWith("why")) {
    System.out.println("Ask using why or Why");
}

09-16 03:27