A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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 我想知道这是为什么,求仔细说一下原因,谢谢

评分

参与人数 1技术分 +1 收起 理由
Silent_memory + 1 赞一个!

查看全部评分

2 个回复

倒序浏览
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

评分

参与人数 1技术分 +1 收起 理由
Silent_memory + 1 赞一个!

查看全部评分

回复 使用道具 举报
String类才覆写了Object类的equals方法,如果你把字符串数组转成数组再用equals方法比较就OK了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马