if(new_password.getPassword() != new_password2.getPassword())
        JOptionPane.showMessageDialog(this,"两次输入密码不一致!!!","提示信息",JOptionPane.INFORMATION_MESSAGE);
为什么我输入一致的密码也说我输入的不一致啊?
还有,好像我这种验证密码的方法很笨,很不规范。有那位高人指点下应该怎么样验证两次输入的密码是否一致啊?

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【wangxin016】截止到2008-07-28 17:58:27的历史汇总数据(不包括此帖):
    发帖的总数量:5                        发帖的总分数:70                       每贴平均分数:14                       
    回帖的总数量:6                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:4                        结贴的总分数:50                       
    无满意结贴数:1                        无满意结贴分:0                        
    未结的帖子数:1                        未结的总分数:20                       
    结贴的百分比:80.00 %               结分的百分比:71.43 %                  
    无满意结贴率:25.00 %               无满意结分率:0.00  %                  
    楼主加油
      

  2.   

    String str1=new_password.getPassword();
    String str2=new_password2.getPassword();
    if(!str1.equals(str2)){}
      

  3.   

    试试这个 if(! new_password.getPassword().equales(new_password2.getPassword()))
      

  4.   

    if(! new_password.getPassword().equales(new_password2.getPassword()))
    你去看看equales和==de区别....
      

  5.   

    java 里面比较2个字符串不是 == 和 != 而是  equals() 和 !equals()
      

  6.   

    三楼这个方法不行
    我输出出来一些值:
    new_password.getPassword()=[C@69d02b
    new_password.getPassword()=[C@e1eea8
    new_password2.getPassword()=[C@fb6354
    new_password.getPassword().toString()=[C@364641
    new_password2.getPassword().toString()[C@13e754f
    我明明输入的都是456
    为什么无论.toString还是不.toString都不一样啊?
    更奇怪的是前两行一模一样都是第一个新密码输出两次值都不同,这改怎么解释啊?
      

  7.   

    getPassword
    public char[] getPassword()返回此 TextComponent 中所包含的文本。如果基础文档为 null,则将给出 NullPointerException。为了取得较高的安全性,建议将每个字符设置为零以便在使用后清除返回的字符数组。你把它构造成一个字符串new String (new_password.getPassword())
    然后用equals去比较
      

  8.   

    ==用于比较地址
    equals比较值
      

  9.   

    好像行了,非常感谢你,但是我还是不懂为什么new_password.getPassword().toString()和
    new String (new_password.getPassword())有什么区别啊,为什么toString就不行啊? 
      

  10.   

    即安全又高效的做法: public static boolean passwordEquals(JPasswordField pwa, JPasswordField pwb) {
    if (pwa == null || pwb == null) return false;
    char[] pa = pwa.getPassword();
    char[] pb = pwb.getPassword();
    if (pa == null || pb == null) return false;
    if (pa.length != pb.length) return false;
    for (int i = pa.length; i >= 0; --i) {
    if (pa[i] != pb[i]) return false;
    }
    return true;
    }