我对Java很新,需要帮助我的If / Else语句。基本上我想这样做,如果这个人输入n或者没有做一件事,或者如果这个人输入y或是,那么做另一件事,如果这个人没有输入n,no,yes或y而不是做一件事。但无论用户输入什么,它都表现得好像没有放入n,no,yes或y。我怎样才能解决这个问题?
到目前为止,这是我的代码:
public class Main
{
public static void main (String[] args)
{
Scanner userInputScanner = new Scanner(System.in);
String [] charName = {"John", "Bob", "Sam"};
Random random = new Random();
int charNameChoice = random.nextInt(charName.length);
System.out.println("Random char selected: " + charName[charNameChoice]);
System.out.println("Y N Question1");
System.out.println("You can input y, yes, n or no");
String questionOneAnswer = userInputScanner.nextLine();
if (questionOneAnswer == "n" || questionOneAnswer == "no")
{
System.out.println("I disagree");
}
else if (questionOneAnswer == "y" || questionOneAnswer == "yes")
{
System.out.println("I agree");
}
else
{
System.out.println("Invalid");
}
}
}
答案 0 :(得分:2)
您应该使用equals
来比较字符串值,例如stringVar.equals("something")
。
更好的是,将其"something".equals(stringVar)
反转可以防止Nullpointerexceptions。
==
比较几乎永远不会相等的指针(除非您正在比较字符串常量)。