黑马程序员技术交流社区
标题:
比较字符串数组是否相同,这两个为什么不相同呢
[打印本页]
作者:
向日葵的曙光
时间:
2014-4-27 20:06
标题:
比较字符串数组是否相同,这两个为什么不相同呢
public class StringDemo {
public static void main(String[] args){
char[] arr={'a','b','c','d','e'};
String s=new String(arr);
sop(s);
char[] arr1=s.toCharArray();
sop(arr.equals(arr1));
}
}
我是先将字符数组转换成字符串,然后又将字符串换换成字符数组,然后比较这两个数组是否相同,返回结果false 我想知道这是为什么,求仔细说一下原因,谢谢
作者:
微笑=.一瞬间
时间:
2014-4-27 21:58
import java.util.*;
class TestArray
{
public static void main(String[] args)
{
char[] arry={'a','b','c','d'};
String s=new String(arry);
System.out.println(s);
char[] arry1=s.toCharArray();
//首先你arry和arry1是两个不同的数组。
System.out.println(arry.equals(arry1));//你写的equals方法是Object类中的方法比较的是地址值,而array和arry1中的地址不同所以输出的是false
// 如果你想比较两个数组中的元素是否相等就用Arrays类中的equals方法(Arrays类中都是一些用于操作数组的静态方法)
System.out.println(Arrays.equals(arry,arry1));//输出结果是true
}
}
结果图:
QQ截图20140427215938.png
(1.92 KB, 下载次数: 26)
下载附件
2014-4-27 21:58 上传
作者:
hhmm665544
时间:
2014-4-28 23:31
String类才覆写了Object类的equals方法,如果你把字符串数组转成数组再用equals方法比较就OK了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2