求解:又一个String问题啊!

everything_is_ok 2012-01-05 02:44:39
public class TestString {

public static void main(String[] args) {
String s1 = "a";
String s2 = "b";
String str = s1 + s2;
System.out.println(str1 == "ab");
}

}

为什么打印出false?
谢谢大家了
...全文
69 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
everything_is_ok 2012-01-05
  • 打赏
  • 举报
回复
谢谢各位了,明白啦
独行码夫 2012-01-05
  • 打赏
  • 举报
回复
== 比较的是地址引用,不是比较内容,所以是false
str.equals("ab")比较的是内容,答案是true
everything_is_ok 2012-01-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhaoct 的回复:]

你确定你得代码能通过编译。。。str1 在哪边
[/Quote]

不好意思啊 我写错了 应该是这样的代码:

public class TestString {

public static void main(String[] args) {
String s1 = "a";
String s2 = "b";
String str = s1 + s2;
System.out.println(str == "ab");
}

}
chenxinquan 2012-01-05
  • 打赏
  • 举报
回复
你用 == 比较的是 是否是同一个对象,当然是false咯 还有你的str1从哪儿来的。
MiceRice 2012-01-05
  • 打赏
  • 举报
回复
String是对象,比较应该使用equals吧。
zhaoct 2012-01-05
  • 打赏
  • 举报
回复
是str == "ab"
zhaoct 2012-01-05
  • 打赏
  • 举报
回复
如果是str1 == "ab",==比较是否是同一个对象,equals比较的是String的值
zhaoct 2012-01-05
  • 打赏
  • 举报
回复
你确定你得代码能通过编译。。。str1 在哪边

62,615

社区成员

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

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