美文网首页
字符串的复制和比较

字符串的复制和比较

作者: 有机会一起种地OT | 来源:发表于2021-02-22 13:57 被阅读0次
    复制

    用一个字符串直接复制给另一个对象,并没有在资源池中创建新的字符串对象。

    public static void copytest() {
        String[] s1 = {"A","B","C"};
        String[] s2 = s1;
        System.out.println(Arrays.asList(s2));
        s2[0] = "D"; //修改了资源池中的数据
        System.out.println(Arrays.asList(s2));
        System.out.println(Arrays.asList(s1));
    }
    >>>[A, B, C]
       [D, B, C]
       [D, B, C]
    

    对一个对象的修改,直接导致所有指向同一资源的对象返回结果都改变。

    可使用Arrays复制方法,来创建一个新的String数组对象。

    String[] s3 = Arrays.copyOf(s1,s1.length);
    String[] s3 = s1.clone();
    
    比较

    “=”只能对比两个字符串是否指向String资源池中同一个对象,不能就内容进行对比。
    字符串值的对比要使用 equals() 方法。

    public static void equalstest () {
        String s1 = "hello";
        String s2 = "HELLO".toLowerCase();
        String s3 = "HELLO";
        System.out.println(s1 == s2); //只对比String资源池对象是否是同一个,不能对比内容是否相同
        System.out.println(s1.equals(s2));
        System.out.println(s1.equalsIgnoreCase(s3));
    }
    

    相关文章

      网友评论

          本文标题:字符串的复制和比较

          本文链接:https://www.haomeiwen.com/subject/ovnhfltx.html