黑马程序员技术交流社区

标题: 比较字符串数组是否相同,这两个为什么不相同呢 [打印本页]

作者: 向日葵的曙光    时间: 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, 下载次数: 28)

QQ截图20140427215938.png

作者: hhmm665544    时间: 2014-4-28 23:31
String类才覆写了Object类的equals方法,如果你把字符串数组转成数组再用equals方法比较就OK了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2