编写代码以将数组元素向左移int n(键盘输入)并将空格替换为零。
例如int[] data = { -1, 1, 3, 7, 5}
,我想看看{ 3, 7, 5, 0, 0}
。
假设我有:
public static void shiftLeft( int[] data, int n )
{
System.arraycopy( data, 1, data, 0, data.length - 1 );
data[data.length - 1] = 0;
}
任何快速帮助都将非常有用。
答案 0 :(得分:1)
您很亲密,但是您的srcPos
参数应该是n
,而length
参数应该是data.length - n
。然后,您可以使用重载的Arrays#fill
方法,该方法接受一个开始/结束索引,以0
填充数组的其余部分:
public static void shiftLeft(int[] data, int n) {
System.arraycopy(data, n, data, 0, data.length - n);
Arrays.fill(data, data.length - n, data.length, 0);
}
使用示例输入对此进行测试会产生以下结果:
int[] data = { -1, 1, 3, 7, 5};
shiftLeft(data, 2);
System.out.println(Arrays.toString(data));
输出:
[3, 7, 5, 0, 0]