java中的字符串比较方法

 我来答
killatw
高粉答主

推荐于2016-01-09 · 关注我不会让你失望
知道大有可为答主
回答量:1.8万
采纳率:91%
帮助的人:2278万
展开全部
  java中的字符串比较方法:
  1)string1.equals(string2)
  2) str1==str2 。
  java中字符串的比较是==比较引用,equals 比较值的做法。但是不同的声明方法字符串的比较结果也是不同的。
例如: String str1=new String("a");
String str2=new String("a");
str1==str2 输出false
str1.equals(str2) 输出true
而如果这样声明
String str1="a";
String str2="a";
str1==str2 输出true
str1.equals(str2) 输出true
这是因为 equals 方法本来也是比较引用的字符串类在实现的时候重写了该方法。
  第一种声明方法等于是声明了两个对象,用’==‘比较是时候比较的是引用输出的是false 由于他们的值相同用equals的时候就比较的是值了,输出true。
  第二种情况不是因为比较有与第一种有差异,而是因为声明有差异,第二种声明方法在声明的时候有堆或堆栈 共用的现象,也就是说 在声明的时候如果如果声明为类属性他会检查在堆栈中有没有与现在声明的是相同结构的字符串。如果有就直接将地址指向已有内存地址。声明在方法内部的局部变量原理一样只不过他是堆栈共享。
枝旺敖晗玥
2019-09-10 · TA获得超过3765个赞
知道大有可为答主
回答量:3148
采纳率:33%
帮助的人:476万
展开全部
A:==怎么用?
**可以用于比较基本数据类型,比较的就是基本数据类型的值是否相等。
**可以用于比较引用数据类型,比较的是对象的地址值是否相等。
B:equals怎么用?
equals只能用于比较引用数据类型的。
**Object提供的equals是用于比较对象地址值是否相同。
**自定义类中,如果重写了equals方法,那么就是按照你自己的需求来比较的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ru_1215
推荐于2016-09-02
知道答主
回答量:39
采纳率:0%
帮助的人:26万
展开全部
==比较的是字符串对象的内存地址值,equals比较的是字符串的内容是否一样。
所以应该用equals。
另外,字符串String类型 在内存中一旦出现 就不能改变,可以随意操作,操作完,你会发现如果输出原字符串还是原值。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jinyibin00
2012-09-14
知道答主
回答量:10
采纳率:0%
帮助的人:1.5万
展开全部
一般是用equals ,=不能用于比较字符串,还有就是compareTo
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
挪威的小屋
2012-09-12
知道答主
回答量:13
采纳率:0%
帮助的人:4.5万
展开全部
equals。如:比较str1和str2是否相等。boolean right=str1.equals(str2)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式