public static char[] copyOfRange(char[] original, int from, int to) {
int newLength = to - from;
if (newLength < 0)
throw new IllegalArgumentException(from + " > " + to);
char[] copy = new char[newLength];
System.arraycopy(original, from, copy, 0,
Math.min(original.length - from, newLength));
return copy;
}arraycopy(src,sPos,dest,dPos,length)中最后一个参数是“要复制的数组元素的数量”,那就用newLength代入了,为什么还要比较“original.length - from”和“newLength”之间谁最小值?这样做的用意是?谢谢!
1 回答

波斯汪
TA贡献1811条经验 获得超4个赞
我来告诉你。
char[] copy = new char[newLength];
这个是你想复制出来的数组的大小,注意这个大小,不一定全部是有数据的。
他的值完全决定于 你的 from to;
这个是真要复制有数据的大小。
Math.min(original.length - from, newLength)
假设这里面 原始数组的长度是 8 from为 4 to为 10
说明我要创建一个6个长度的数组,前4个数据来源于原始数据!~~后两个,干啥现在还不清楚。。明白了吧!~~
添加回答
举报
0/150
提交
取消