代码之家  ›  专栏  ›  技术社区  ›  fb55

java.util.scanner和字符串问题

  •  0
  • fb55  · 技术社区  · 16 年前

    我试图用java.util.scanner实现一个简单的是/否输入。我的代码如下:

    public boolean ask(String quest){
      String answ = scann(quest + " (y/n)");
      answ = answ.split("")[1].toLowerCase();
      if(answ == "y") { return true; }
      if(answ == "n") { return false;}
    
      //if answer isnt understood
      printOut("Please enter 'y' or 'n'! Answered: " + answ +"!");
      return ask(quest);
    }
    

    简而言之:它最终得到了一个无限的答案请求。答案永远不会被理解,我不知道我做错了什么。

    1 回复  |  直到 15 年前
        1
  •  3
  •   BoltClock    16 年前

    不能使用 == 比较Java中的字符串(嗯,可以,但不是比较它们的文字值的正确方法)。你需要使用 equals() :

      if ("y".equals(answ)) { return true; }
      if ("n".equals(answ)) { return false; }