Java 为什么不';字符串比较是否相等?

Java 为什么不';字符串比较是否相等?,java,Java,可能重复: 我是java新手,不知道这个代码块出了什么问题。 我知道数组不是空的,我正在别处测试它。也许我用c语言编程时遇到了语法问题 扫描仪输入=新扫描仪(System.in); System.out.println(“输入ID:”); 字符串employeeId=input.nextLine(); int指数=-1; for(int i=0;i

可能重复:

我是java新手,不知道这个代码块出了什么问题。 我知道数组不是空的,我正在别处测试它。也许我用c语言编程时遇到了语法问题

扫描仪输入=新扫描仪(System.in);
System.out.println(“输入ID:”);
字符串employeeId=input.nextLine();
int指数=-1;
for(int i=0;i
我总是谈到“无效”部分。知道为什么吗? 提前谢谢


员工编号[0]
的“12345”
employeeId
的“12345”

但是我不能进入第一个if语句,尽管
employeeId
等于
employeeNumber[0]

不要将字符串与
=
进行比较

使用


比较这样的字符串

if(employeeId.equals(employeeNumber[i]) {

}

将==与两个字符串一起使用时,它会比较指针地址 您应该使用firststring.equals(secondstring)来比较两个字符串

使用
equals()
方法来比较字符串

if(employeeId.equals(employeeNumber[i])){}

正如其他人所指出的,完整的代码将很有帮助,但我的猜测是这行代码:

if(employeeId == employeeNumber[i])

不能使用==比较两个字符串。改用equals()或equalsIgnoreCase()仅检查对象是否相等,即employeeId和employeeNumber是否引用内存中的同一对象。因此,对于对象,始终使用equals()方法。对于字符串,还可以使用equalsIgnoreCase()进行不区分大小写的匹配。==应在int、long等基本类型上使用。

“==”检查两个对象的引用是否相同。但是equals()方法检查内容是否相同或不同。

比较字符串时,请使用
String1.等于(String2)

这应该会给你结果

什么是employeeCounter?请粘贴完整的code.use.equals()以进行字符串比较。这正是我所需要的,非常感谢
“其他”。equals(string1)
是首选方法--空保存。
if(employeeId.equals(employeeNumber[i])){}
if(employeeId == employeeNumber[i])