Java 为什么不';这些字符串不匹配吗?
我得到的用户输入如下:Java 为什么不';这些字符串不匹配吗?,java,eclipse,string,if-statement,match,Java,Eclipse,String,If Statement,Match,我得到的用户输入如下: Scanner keyboard = new Scanner(System.in); String input = keyboard.nextLine(); 当我这样比较的时候 if(input == "abc"){ System.out.println("Match!"); }else{ System.out.println(input + "\nabc"); } 如果我输入“abc”,我知道了 abc abc 而不是预期的匹配。发生了什么事?==正在比较
Scanner keyboard = new Scanner(System.in);
String input = keyboard.nextLine();
当我这样比较的时候
if(input == "abc"){
System.out.println("Match!");
}else{
System.out.println(input + "\nabc");
}
如果我输入“abc”,我知道了 abc
abc
而不是预期的
匹配
。发生了什么事?==正在比较内存位置。您需要改用input.equals(“abc”)。==正在比较内存位置。您需要使用input.equals(“abc”)。您是在比较String
引用,而不是String
值。请改用String.equals
方法。您正在比较String
引用,而不是String
值。改用String.equals
方法。我认为这是一个重复。我在学习Java;从JavaScript开始——这对我来说是一个新概念。对不起,我们可以添加哑问题
标记此问题不是哑问题。每个新手都会犯这个错误。不用担心,再加上@Pshemo所说的,大多数初学者都犯了一个错误,Java中的字符串被视为原语。这是由于它们的初始化方式以及运算符如何影响它们。我知道我也曾在那里,我得说那是个骗局。我在学习Java;从JavaScript开始——这对我来说是一个新概念。对不起,我们可以添加哑问题
标记此问题不是哑问题。每个新手都会犯这个错误。不用担心,再加上@Pshemo所说的,大多数初学者都犯了一个错误,Java中的字符串被视为原语。这是由于它们的初始化方式以及运算符如何影响它们。我知道我也曾在那里。