救命啊!!很菜的问题!!可是问题好奇怪!!!在线等待........

小点哥 2003-03-20 03:40:52
如何比较两个字符串是否相等!!!!???

System.out.println("AA"+rs.getString("password")+"AA");
System.out.println("BB"+ld.getPwd()+"BB");
if((String) rs.getString("password")==(String)ld.getPwd() )
{
System.out.println("@@@");
return true;
}
else
{
System.out.println("###");
return false;
}

上面的输出结果是:
AA111AA
BB111BB
###

Why??????????????????????????
...全文
47 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ppdy 2003-03-20
  • 打赏
  • 举报
回复
cloud79(赫然)中了.

又來晚了.......
acefr 2003-03-20
  • 打赏
  • 举报
回复
==运算符只是测定两个串是否存储在同一个位置。当然,如果串是在同一个位置,那么他们必定相等。但是确实有可能把串的多个拷贝存储在不同的地方。如果虚拟机总是把相等的串安排为共享,那么可以使用==来测试他们是否相等。但是只有字符串常数被共享。因此,永远不要用==来比较字符串。
就如c程序员从不使用==来比较字符串,而是用strcmp。java中的compareTo方法与strcmp完全类似。可以使用:if(hello.compareTo("help")==0)...

然而使用equals会更清晰。

java.lang.String

boolean equals(Object anObject)
Compares this string to the specified object.

boolean equalsIgnoreCase(String anotherString)
Compares this String to another String, ignoring case considerations.

eg: if (hello.equals("help"))....

zhg_dragon 2003-03-20
  • 打赏
  • 举报
回复
同意 cloud79(赫然) .
sandyen 2003-03-20
  • 打赏
  • 举报
回复
if(myStr != null && myStr.equals("userStr"){
}
cloud79 2003-03-20
  • 打赏
  • 举报
回复
equals()
cloud79 2003-03-20
  • 打赏
  • 举报
回复
==比较地址,地址当然不同
equal()比较值
millercq 2003-03-20
  • 打赏
  • 举报
回复
java 中比较两个字符串,有几种:
1.比较值是否相同
2.比较两个字符串是否相同

所以有=和equals()两种方法,
其中equals()方法有时需要重写,不是任何时候都能直接调用的。

你可以用楼上的方法,解决你目前的问题。
lfxhyf7979 2003-03-20
  • 打赏
  • 举报
回复
System.out.println("AA"+rs.getString("password")+"AA");
System.out.println("BB"+ld.getPwd()+"BB");
if(rs.getString("password").equals(ld.getPwd()) )
{
System.out.println("@@@");
return true;
}
else
{
System.out.println("###");
return false;
}
小点哥 2003-03-20
  • 打赏
  • 举报
回复
其实我两个都是字符串!!
怎么比较他们是否相同啊???

每次遇到字符串比较都好奇怪!!大侠们..帮忙啊...

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧