【问题标题】:Array.copyOfRange method doesn't function as intended and returns a weird string [duplicate]Array.copyOfRange 方法无法按预期运行并返回一个奇怪的字符串 [重复]
【发布时间】:2020-11-19 04:26:12
【问题描述】:

我想在 Java 中拼接一个数组。我尝试了 Array.copyOfString 方法来解决问题。但是,终端中的输出只是两个奇怪的字符串。我能做些什么来修复代码的功能吗?

package exp;

import java.util.Arrays;

public class exp {
  public static void main(String[] args){
     int[] array={0,1,2,3,4,5,6,7,8,9,10};
     int[] a=Arrays.copyOfRange(array, 0, 10);
     int[] b=Arrays.copyOfRange(array, 5, 5);
     System.out.println(a);
     System.out.println(b);
  }
}

终端:

[I@6acbcfc0
[I@5f184fc6

Process finished with exit code 0

【问题讨论】:

    标签: java arrays output


    【解决方案1】:

    当我们将参数传递给System.out.println 时,它会在内部为该对象(传递的内部参数)调用toString 方法。

    在这里,当您传递一个数组对象进行打印时,它会调用 Object 类(所有对象的超类)的默认 toString 方法。

    Object 类中 toString 的默认实现是:

    getClass().getName() + '@' + Integer.toHexString(hashCode())
    

    这就是您所看到的结果。因此,如果要打印数组的内部值,则需要使用 Arrays.toSTring 方法,如下所示:

    System.out.println(Arrays.toString(a));
    

    它在内部遍历数组的每个元素并返回连接的字符串作为结果显示。

    【讨论】:

      【解决方案2】:

      试试这个:

      System.out.println(Arrays.toString(a));
      System.out.println(Arrays.toString(b));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-02-17
        • 2019-04-22
        • 1970-01-01
        • 2020-04-23
        • 2021-11-14
        • 2019-01-07
        • 1970-01-01
        • 2019-09-27
        相关资源
        最近更新 更多