标题:JAVA字符串判断出错,求解
只看楼主
dengdaisky
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2010-4-11
结帖率:54.55%
已结贴  问题点数:5 回复次数:6 
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 字符串 
2013-09-14 01:31
java小蚂蚁
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:上海
等 级:贵宾
威 望:18
帖 子:558
专家分:2186
注 册:2013-7-2
得分:5 
这样看不出来,你输入的用户名和密码那个页面的action类里怎么处理的。
 if(a.panduan()==true)
            {
             System.out.println("用户名和密码输入正确");
还有这样的判断是不是会有bug你测试下。

学海无涯#¥%……&*(
2013-09-14 19:54
邱威
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:136
专家分:351
注 册:2012-3-28
得分:0 
在admin的panduan()方法里面,那个if判断你到底是怎么理解的,能不能把业务逻辑搞清楚了,
再写代码。。。还有类建议首字母大写,不过你硬要小写也不会出错。
2013-09-14 21:54
dengdaisky
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2010-4-11
得分:0 
回复 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("输入错误!");
    }

}
2013-09-14 23:00
java小蚂蚁
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:上海
等 级:贵宾
威 望:18
帖 子:558
专家分:2186
注 册:2013-7-2
得分:0 
你把比较的两个值都打印出来,

学海无涯#¥%……&*(
2013-09-15 14:07
胡胜彬
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-7-27
得分:0 
    public boolean panduan()
    {
        if(user==getuser()&&pass==getpass())
            return true;
        else
            return false;
   
    }

这有问题;user是类admin的一个属性,getuser()获得的就是user属性。这当然是true的。
2013-09-16 22:25
java小蚂蚁
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:上海
等 级:贵宾
威 望:18
帖 子:558
专家分:2186
注 册:2013-7-2
得分:0 
将两个类型转换成相同的,然后再比较,比较的之后,打印出两个比较的值,看有没有问题。

学海无涯#¥%……&*(
2013-09-17 10:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-420552-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.071044 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved