if(new_password.getPassword() != new_password2.getPassword())
JOptionPane.showMessageDialog(this,"两次输入密码不一致!!!","提示信息",JOptionPane.INFORMATION_MESSAGE);
为什么我输入一致的密码也说我输入的不一致啊?
还有,好像我这种验证密码的方法很笨,很不规范。有那位高人指点下应该怎么样验证两次输入的密码是否一致啊?
JOptionPane.showMessageDialog(this,"两次输入密码不一致!!!","提示信息",JOptionPane.INFORMATION_MESSAGE);
为什么我输入一致的密码也说我输入的不一致啊?
还有,好像我这种验证密码的方法很笨,很不规范。有那位高人指点下应该怎么样验证两次输入的密码是否一致啊?
楼主【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 %
楼主加油
String str2=new_password2.getPassword();
if(!str1.equals(str2)){}
你去看看equales和==de区别....
我输出出来一些值:
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都不一样啊?
更奇怪的是前两行一模一样都是第一个新密码输出两次值都不同,这改怎么解释啊?
public char[] getPassword()返回此 TextComponent 中所包含的文本。如果基础文档为 null,则将给出 NullPointerException。为了取得较高的安全性,建议将每个字符设置为零以便在使用后清除返回的字符数组。你把它构造成一个字符串new String (new_password.getPassword())
然后用equals去比较
equals比较值
new String (new_password.getPassword())有什么区别啊,为什么toString就不行啊?
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;
}