0

所以我的问题是我正在尝试制作一个非常简单的程序来刷新我糟糕的编码技能,但是我遇到了一个我不明白的问题。该程序应该接受答案“是”并打印“耶”,只是为了检查它是否有效,但它不起作用。所以我想知道我做错了什么。

public class main {
    /**
     * @param args
     */
    public static void main(String[] args) {
        int playerTroops, computerTroops;
        String teamName, computerName = "Orcs", answer;
        Scanner listener = new Scanner(System.in);
        System.out
                .println("Welcome to the Battle Grounds, where you are responsible for winning a war \nAre you ready? \nYes or No");
        answer = listener.nextLine();

        if (answer == "Yes")
            System.out.println("Yayy");
        else
            System.out.println("Why");
    }
}
4

1 回答 1

4

对于 Java 字符串比较,您必须使用 .equals 运算符:

if(answer.equals("Yes"))

如果你想忽略大小写,

if(answer.equalsIgnoreCase("Yes"))

在 Java 中,运算符==检查引用是否相等。在正常情况下,相等的字符串不会自动具有相同的引用(IE:它们是不同的对象。这种区别在 Java 中非常重要)。

于 2013-02-27T02:11:14.710 回答