可能重复:
如何比较Java中的字符串?
在我的Java应用程序中.要接受挑战,请按y,但程序不会继续.谁能帮我这个?
这是我的代码:
import java.util.Scanner;
public class MainApp
{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
System.out.println("Hello User");
System.out.println("Please Enter your first name");
String name;
name =scanner.next();
System.out.println("\n" + " Hello " + name + "how are you today?");
String y="";
y=scanner.next();
System.out.println("\n" + " Well " + name + " I am " + y + " Too." +"\n" + " I have a riddle for you " + name + ", wll you Attempt it?" + "\n" + " Type y for yes , or n for no");
String v;
v=scanner.next();
if(v == "y")
{
System.out.println("\n" + "How much wood could a wood chuck chuck if a wood chuck could chuck wood? :) " );
}
else if(v == "n")
{
System.out.println("Ok then " + name + " suit youself, Goodbye! :) ");
}
else
{
System.out.println("Please pick y, or n , and make sure it is in lower case");
}
}
}
Run Code Online (Sandbox Code Playgroud)
if(v == "y")
Run Code Online (Sandbox Code Playgroud)
您应该String.equals()
用来比较字符串.
所以条件的代码应该是这样的:
if ("y".equals(v)) //checking "y".equals() prevents null access if v is null
Run Code Online (Sandbox Code Playgroud)
说明:
将operator==
被检查身份 -如果两个操作数是完全相同的对象.这不是你想要的,因为很少有字符串的情况.
equals()
另一方面,该方法 - 如果两个对象彼此相等,则检查相等性.