为什么Java的数组复制方法会这样?
以下代码以各种方式使用Java的数组复制方法:
public static void main(String[] args) {
char[] copyFrom={'s','n','a','d','g'};
char[] copyto=new char[7];
System.arraycopy(copyFrom, 1, copyto, 0, 3);
System.out.println(new String (copyto));
System.arraycopy(copyFrom, 1, copyto, 1, 3);
System.out.println(new String (copyto));
System.arraycopy(copyFrom, 1, copyto, 2, 3);
System.out.println(new String (copyto));
System.arraycopy(copyFrom, 1, copyto, 4, 3);
System.out.println(new String (copyto));
}
这是输出:
nad
nnad
nnnad
nnnanad
为什么"n"
会被重复
# 1 楼答案
因为您使用了一个copyto数组,所以我在注释中向您展示
您应该每次创建新的copyto阵列: