JAVA中两个数组的equals运算 5
Stringstr="hello";charc[]={'h','e','l','l','o'};charch[]=str.toCharArray();if(ch.equa...
String str="hello";
char c[]={'h','e','l','l','o'};
char ch[]=str.toCharArray();
if(ch.equals(c))
System.out.println("true");
else
System.out.println("false");
结果为什么是false呢 展开
char c[]={'h','e','l','l','o'};
char ch[]=str.toCharArray();
if(ch.equals(c))
System.out.println("true");
else
System.out.println("false");
结果为什么是false呢 展开
10个回答
展开全部
基本数据类型的数组的equals方法没有重载Object的equals方法,所以跟“==”效果一样
所以你这里 ch.equals(c) 效果和 ch == c是一样的,==比较的是内存地址,结果是false
如果想要比较内容相同,可以使用Arrays.equals(ch,c),或者将数组转换成string后在用equlas方法进行比较
所以你这里 ch.equals(c) 效果和 ch == c是一样的,==比较的是内存地址,结果是false
如果想要比较内容相同,可以使用Arrays.equals(ch,c),或者将数组转换成string后在用equlas方法进行比较
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
String类的toCharArray()方法中有char result[] = new char[value.length];就是new了一个对象,而你调用char的equals方法,就是在调用Object的equals方法,比较的是2个对象的地址,所以为false
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以按住ctrl进去看看他的实现。它是直接用了object类的方法。return this==obj.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
c[]是新创建的一个对象,内存地址与ch[]不同,所以是false
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询