简单的字符串比较问题!(100分)

  • 主题发起人 主题发起人 love_fy
  • 开始时间 开始时间
L

love_fy

Unregistered / Unconfirmed
GUEST, unregistred user!
代码如下
public boolean loginin(String username,String pwd)
{
try{
ResultSet results;
results=queryusers() ;///////用户表的数据集
boolean more=results.next() ;
while ( more )
{
// System.out.println(results.getString("username").toLowerCase() );
// System.out.println(results.getString("pwd").toLowerCase() );
String curuser=results.getString("username");
String curpwd=results.getString("pwd");
///////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
if ( curuser.trim() == username.trim() )///////////////这里我再跟踪时两个变量的值是一样的,但
  {                          /////比较的结果却总是不对
if (curpwd==pwd)
{
return true;
}}
more =results.next() ;
}
}
catch(Exception e)
{
System.out.println(e.toString() );
return false;
}
return false;
}
请问为什么两者的比较结果在跟踪时明明是一样的,可比较的结果却是false
是不是java中的字符比较另有方法阿
 
我不清楚java,但C中比较两个字符串是用strcmp()之类的函数,而不能直接用==
 
和c差不多用"strcmp()"。
curuser.trim() == username.trim() 只是比较两个对象的object reference.
 
我想应该用equals()吧. string1.equals("string")
 
不能用==,要用equals()!!!
 
==对于字符串对象来说是比较对象的句柄,所以肯定不同。像楼上说得要用
if (curuser.trim().equals(username.trim()))
{
}
 
后退
顶部