Java启动时无法正常工作

时间:2014-10-27 17:26:41

标签: java string netbeans

我有两个字符串表:

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;      
            }
            }

当我输入我的输入时:“为什么天气不好?”,它返回:“询问使用为什么或为什么”。 当我输入:“你好吗?”时,它会返回“询问使用为什么或为什么”。

我希望这个程序只允许以为什么或为什么开始的问题。

我做错了什么?

1 个答案:

答案 0 :(得分:3)

你在做什么:

  1. 与第一个条目匹配
  2. 如果不匹配,请向用户显示该消息并中止。
  3. 你想做什么:

    1. 与第一个条目匹配。
    2. 如果不匹配,请尝试下一个条目。
    3. 如果没有匹配的条目,则向用户显示一条消息并中止。
    4. 以下是一个例子:

      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");
      }