java如何匹配字符串输入
import java.util.*;
import java.lang.*;
class password
{
public static void main(String[] args)
{
int i;
String pass,temppass;
Scanner s=new Scanner(System.in);
System.out.println("Enter Password: ");
pass=s.next();
System.out.println("Re-enter password: ");
temppass=s.next();
if(temppass==pass)
{
System.out.println("Sucess");
}
else
System.out.println("failed");
}
}
我用Java编写了这个基本代码来匹配我的密码输入。即使我输入了正确的密码,它也会转到else
语句,即“failed”。我现在该怎么办
# 1 楼答案
这就是问题所在:
必须使用
equals
方法进行字符串比较资料来源:What is the difference between == vs equals() in Java?
# 2 楼答案
字符串或任何其他对象必须始终使用
equals
方法检查是否相等您正在使用
temppass == pass
,这是不正确的您应该使用
temppass.equals(pass)
来比较这两个字符串以下是正确的方法:
==
运算符比较对象引用,而不是值因此,当执行
temppass == pass
时,如果两个变量都指向同一个对象,则会进行比较,但情况并非如此。它们指向内存中的两个不同对象(尽管两个对象包含相同的值)。因此,检查返回false
另一方面,
equals
方法检查对象的值,如果值匹配,则返回true
希望这有帮助