我得到了一个由两个字符串组成的表:
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;
}
}
当我输入:"为什么天气不好?"时,它会返回:"用为什么或为什么询问"。此外,当我键入:"你好吗?"时,它会返回"询问为什么或为什么"。
我希望这个程序只允许以"为什么"或"为什么"开头的问题。
我做错了什么?
您正在做的事情:
- 与第一个条目匹配
- 如果不匹配,则向用户显示消息并中止
你想做什么:
- 与第一个参赛者比赛
- 如果不匹配,请尝试下一个条目
- 如果没有匹配的条目,则向用户显示一条消息并中止
这里有一个例子:
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");
}