日期:2014-05-18  浏览次数:20676 次

疯了..字符串的怪问题
.深秋小雨(7338367)   17:01:17
public   String   validate(String   username,String   password)
{
String   result   =   null;
LoginDao   loginDao   =   new   LoginDao();
User   user   =   loginDao.queryById(username);

if(user!=null)
{
String   temp   =   user.getPassword();
System.out.println(temp);
if(temp.equals( "lwd "))
{
System.out.println( "success ");
result   =   "success ";
}
else
{
System.out.println( "wrong   password ");
System.out.println( "L: "+password+ ",D: "+temp);
result   =   "fail ";
}
}
else
{
System.out.println( "user   does   not   exist ");
result   =   "fail ";
}

return   result;
}  

  .深秋小雨(7338367)   17:01:57
总是登录不成功并且输出wrong   password  

  .深秋小雨(7338367)   17:03:10
if(temp.equals( "lwd "))改成if(temp.equals(password))也一样,因为数据库里对应的password就是lwd  

System.out.println(temp)的结果是lwd啊
"lwd ".equals(temp)的结果居然是false  
不可能有空格,因为用了trim方法还是一样的结果。

搞了一下午了,晕啊。

------解决方案--------------------
L?123的1?

String temp = user.getPassword().toUpperCase();
System.out.println(temp);
if(temp.equals( "lwd ".toUpperCase()))
{
System.out.println( "success ");
result = "success ";

试试
------解决方案--------------------
debug一下看看.
喝杯茶冷静一下,问题就解决了!呵
------解决方案--------------------
temp得值应该用空格
你这样输出temp得值看看
System.out.println( "[ " + temp + "] ");
------解决方案--------------------
是不是大小写问题或者1和l搞混了