注册 登录
编程论坛 J2EE论坛

关于java中equals()用法

静思 发布于 2007-09-01 19:08, 1063 次点击
String dbPassword = userDAO.findPassword(user.getUserName());
String passwd=user.getPassword();
我在调试时发现dbPassword与passwd的值相同,可是dbPassword.equals(passwd)的返回值是false,应该是true才对啊,是不是这对String是不一样的呀。
我看了网上的一些关于equals的用法,里面说只要类型相同,值相同,返回值就为true.
这是什么原因呀?麻烦各位帮我分析一下...
5 回复
#2
Gramary2007-09-01 20:13

应该是值不一样`
所以才会出现这样的问题
有可能一个空格也是 不匹配的
你在程序中输出`` 用眼睛仔细看一下是不是一样的
如果是一样的还是不匹配`
就可能取出来的时候带了空格`` 你调用.trim() //消除两边的空格
String dbPassword = userDAO.findPassword(user.getUserName()).trim();
String passwd=user.getPassword().trim();

#3
静思2007-09-01 20:59
按楼上的说法改了一下,问题解决了...谢谢楼上的!
我还想问一下大家为什么从数据库取出来时数据带了空格呢?
#4
枫飘天涯2007-09-01 21:18

比如说 你在数据库中设的是varchar(10)而你放进去的字符只有8位 那
剩的2位 数据库会默认会空格来填充的

#5
sea72007-09-01 21:57
楼上正解
#6
静思2007-09-01 22:36
哦...
知道了原来我的数据库中密码设置为10位,我输入的密码为9位,剩下的用空格补了,多谢楼上各位的指点!~!
1