This question already has answers here:
How do I compare strings in Java?

(23个答案)


6年前关闭。





当我调试此代码时,我注意到If语句从未将布尔类型sales变量切换为true ...这让我很烦,因为当它进入If语句时,我知道答案=“ y”。请帮助!是的,我确实导入了java.util.Scanner

Scanner input = new Scanner(System.in);
boolean sales = false;
String answer;

System.out.print("Will you be calculating the Sales department pay aswell? (y or n):");
answer = input.nextLine().trim();

if (answer == "y")
{
    sales = true;
}


我有

最佳答案

比较字符串的正确方法是:

if (answer.equals("y"))


请注意,在Java中,equals()用于测试对象之间的相等性,而==运算符用于测试身份。它们是两个不同的概念,大多数时候您对平等感兴趣。

正如@MadProgrammer建议的那样,反转比较顺序是个好主意-如果answernull会更安全:

if ("y".equals(answer))

关于java - 如果语句不接受适当的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20253863/

10-11 22:48
查看更多