我需要有关如何在 Java 中使用 arraycopy 方法的帮助。
我有一个字符数组,例如:
[阿、乙、丙、丁]
我想向右执行循环移位,例如,如果圆移是整数 2,则字符将向右移动两个位置,结果为:
[中、丁、甲、乙]
我想知道如何使用 arraycopy 方法实现这一点。
当涉及到将数组向左移动一定数量的移位时,我已经设法实现了它,如下所示:
System.arraycopy(sArray, leftShifts, leftShiftedArray, 0, n - leftShifts);
System.arraycopy(sArray, 0, leftShiftedArray, n - leftShifts, leftShifts);
我只是发现很难为右翼做同样的事情。
谢谢
向左旋转N
元素数组k
等效于向右旋转同一数组N-k
元素。因此,您需要做的就是用公式中的n - rightShifts
替换leftShifts
:
System.arraycopy(sArray, n - rightShifts, rightShiftedArray, 0, rightShifts);
System.arraycopy(sArray, 0, rightShiftedArray, rightShifts, n - rightShifts);