当前位置: 代码迷 >> Java相关 >> JAVA字符串判断出错,求解
  详细解决方案

JAVA字符串判断出错,求解

热度:369   发布时间:2013-09-14 01:31:36.0
JAVA字符串判断出错,求解
我想实现一个程序,就是首先定义好账号和密码,如果用户输入账号或者密码错误,就提示输入错误。如果正确的话,提示修改,然后再让用户输入准备修改的账号和密码,并且覆盖原账号和密码,为什么我输入错误的账号和密码还是显示正确呢?求解

package 郁闷问题;
import java.util.*;;
class admin
{
    public String user="admin";
    public String pass="admin";
    public void setuser(String user)
    {
        this.user=user;
    }
    public String getuser()
    {
        return user;
    }
    public void setpass(String pass)
    {
        this.pass=pass;
    }
    public String getpass()
    {
        return pass;
    }
    public boolean panduan()
    {
        if(user==getuser()&&pass==getpass())
            return true;
        else
            return false;
   
    }
    public void test()
    {
        System.out.println(user+"  "+getuser());
    }
}

public class Passwords {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        admin a=new admin();
        System.out.println("请输入用户名!");
      Scanner s=new Scanner(System.in);
      String n=s.nextLine();
          System.out.println("请输入密码!");
         String p=s.nextLine();
            if(a.panduan()==true)
            {
             System.out.println("用户名和密码输入正确");
               String q,w;
              System.out.println("请输入需要修改的用户名!");
                q=s.nextLine();
                a.setuser(q);
               System.out.println("请输入需要修改的密码!");
               w=s.nextLine();
               a.setpass(w);
               System.out.println("修改成功,账号和密码为:"+a.getuser()+
             "  "+a.getpass());
            }
         else
             System.out.println("输入错误!");
    }

}
搜索更多相关的解决方案: package  public  return  import  字符串  

----------------解决方案--------------------------------------------------------
这样看不出来,你输入的用户名和密码那个页面的action类里怎么处理的。
if(a.panduan()==true)
            {
             System.out.println("用户名和密码输入正确");
还有这样的判断是不是会有bug你测试下。
----------------解决方案--------------------------------------------------------
在admin的panduan()方法里面,那个if判断你到底是怎么理解的,能不能把业务逻辑搞清楚了,
再写代码。。。还有类建议首字母大写,不过你硬要小写也不会出错。
----------------解决方案--------------------------------------------------------
回复 2楼 java小蚂蚁
反正就是让我觉得郁闷的就是不执行else语句,我是用了equals方法还是不行。。。
程序代码:
package 郁闷问题;
import java.util.*;;
class Admin
{
    public String user="admin";
    public String pass="admin";
    public void setuser(String user)
    {
        this.user=user;
    }
    public String getuser()
    {
        return user;
    }
    public void setpass(String pass)
    {
        this.pass=pass;
    }
    public String getpass()
    {
        return pass;
    }
    public boolean panduan(Admin a)
    {
        if(user.equals(a.getuser())&&pass.equals(a.getpass()))
            return true;
        else
            return false;
   
    }
}

public class Passwords {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        Admin a=new Admin();
        System.out.println("请输入用户名!");
      Scanner s=new Scanner(System.in);
      String n=s.nextLine();
          System.out.println("请输入密码!");
         String p=s.nextLine();
            if(a.panduan(a))
            {
             System.out.println("用户名和密码输入正确");
               String q,w;
              System.out.println("请输入需要修改的用户名!");
                q=s.nextLine();
                a.setuser(q);
               System.out.println("请输入需要修改的密码!");
               w=s.nextLine();
               a.setpass(w);
               System.out.println("修改成功,账号和密码为:"+a.getuser()+
             "  "+a.getpass());
            }
          else
                 System.out.println("输入错误!");
    }

}

----------------解决方案--------------------------------------------------------
你把比较的两个值都打印出来,
----------------解决方案--------------------------------------------------------
    public boolean panduan()
    {
        if(user==getuser()&&pass==getpass())
            return true;
        else
            return false;
   
    }

这有问题;user是类admin的一个属性,getuser()获得的就是user属性。这当然是true的。

----------------解决方案--------------------------------------------------------
将两个类型转换成相同的,然后再比较,比较的之后,打印出两个比较的值,看有没有问题。
----------------解决方案--------------------------------------------------------
  相关解决方案