我是一个Java初学者,下面是我写的一个程序,编译没有错误,但结果总是一个样,无论输入为什么样,我很苦恼,不知错在何处,求高手指教,谢谢!
import java.util.Scanner;
public class Login {
/*String name;String pass;
    Login(String name,String pass){
this.name=name;
this.pass=pass;
}*/
public void loginValidity(String name,String pass){
if(name=="zhan" && pass=="abc"){
System.out.println("登录成功!");
}
else{
System.out.println("登录失败!");
}

}}
public class LoginTest { public static void main(String[] args)  {
Scanner s=new Scanner(System.in);
System.out.print("请输入用户名:");
String s1=s.next();
System.out.print("请输入密码:");
String s2=s.next();
//System.out.print("输入完成");
Login l=new Login();
l.loginValidity(s1,s2);

}}
运行结果总是:
请输入用户名:zhan  //输入用户名
请输入密码:abc    //输入密码
登录失败!         //结果就只有这一个
很苦恼,请求高手予以帮助,谢谢!

解决方案 »

  1.   

    if(name=="zhan" && pass=="abc"){ ==改为equals
      

  2.   

    if(name.equals("zhan") && pass.equals("abc")){ 
      

  3.   

    if(name=="zhan" && pass=="abc"){ 
    System.out.println("登录成功!"); 
    } 改为if("zhan".equals && "abc".equals(pass)){
    System.out.println("登录成功!"); 

      

  4.   

    改if(name=="zhan" && pass=="abc"){  为
    if(name.equals("zhan") && pass.equals("abc")){就可以了  你是对=号和equals没有理解
     
      

  5.   

    .equals方法比较的是字符串内容,== 比较的是字符串的地址
      

  6.   


    字符串比较用equals()