我得到了两个字符串的表:
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");
}