为什么比较这些字符串不起作用?(JAVA初学者)
我正在尝试读取控制台输入,它们正在工作。但是,我的if语句(检查我的输入和我想要的输入是否相同)不起作用。我已经在底部添加了我所有的代码,如果你看到我做错了什么,请告诉我。我是java新手,所以也给我一些关于代码其他部分的提示。谢谢,麦克斯为什么比较这些字符串不起作用?(JAVA初学者),java,string,Java,String,我正在尝试读取控制台输入,它们正在工作。但是,我的if语句(检查我的输入和我想要的输入是否相同)不起作用。我已经在底部添加了我所有的代码,如果你看到我做错了什么,请告诉我。我是java新手,所以也给我一些关于代码其他部分的提示。谢谢,麦克斯 package Issue; import java.util.Scanner; import java.util.concurrent.TimeUnit; public class Issue { public static int loop;
package Issue;
import java.util.Scanner;
import java.util.concurrent.TimeUnit;
public class Issue {
public static int loop;
public static String input,desiredInput;
public static void main(String args []) throws InterruptedException {
Scanner in = new Scanner(System.in);
loop = 1;
while(loop == 1) {
input = in.nextLine();
desiredInput = "help";
// uncomment to see if what input and desired input are equal to :)
//System.out.println(input + " " + desiredInput);
if(input == desiredInput) {
System.out.println("911 what's the emergency.");
}
}
}
}
这里比较的是对象引用。字符串是java input==desiredInput中的对象,表示检查的是对象引用的相等性,而不是内容的相等性。要比较内容,请使用input.equals(desiredInput)此处比较的是对象引用。字符串是java input==desiredInput中的对象,表示检查的是对象引用的相等性,而不是内容的相等性。要比较内容,请使用input.equals(desiredInput)这是Java的一点优势,您将学会避免。双等于“==”不应用于字符串对象或任何对象的值比较。对于字符串,请使用
input.equals(desiredInput)
这是Java的一个小优势,您将学习如何避免它。双等于“==”不应用于字符串对象或任何对象的值比较。对于字符串,请使用
input.equals(desiredInput)
=
测试引用相等性(它们是否为同一对象)
.equals()
测试值相等(它们在逻辑上是否“相等”)。=
测试引用相等(它们是否是相同的对象)
.equals()
测试值相等性(它们在逻辑上是否“相等”)。您好,FoxGoHehehe,欢迎使用StackOverflow和编程。您的代码不起作用,因为在java中比较String
s的效果不同。通过比较input==desiredInput
您实际比较的是字符串是否是内存中的同一对象,而不是它们是否相等(相等)。您要比较:desiredInput.equals(输入)
。此外,您可能希望从输入的两端删除空字符,如换行符和空格。这样做:desiredInput.equals(input.trim())
。我们不使用==来比较java中字符串的值。尝试输入。等于(desiredInput)谢谢,我对此一无所知!我将能够继续我的项目!你好,Foxgohehe,欢迎来到StackOverflow和编程。您的代码不起作用,因为在java中比较String
s的效果不同。通过比较input==desiredInput
您实际比较的是字符串是否是内存中的同一对象,而不是它们是否相等(相等)。您要比较:desiredInput.equals(输入)
。此外,您可能希望从输入的两端删除空字符,如换行符和空格。这样做:desiredInput.equals(input.trim())
。我们不使用==来比较java中字符串的值。尝试输入。等于(desiredInput)谢谢,我对此一无所知!我将能够继续我的项目!