gpt4 book ai didi

java - 如何在 Java 中移动数组中的位置?

转载 作者:行者123 更新时间:2023-12-03 23:03:30 26 4
gpt4 key购买 nike

一个简单移动数组元素的程序。

两个变量:userInputVariableblankSpaceVariable

我有一个名为表的二维数组。定义为 table[userInputVariable + 1][6]

我正在以表格格式打印出这个数组,最左边的列按用户在程序开始时输入的数字编号。

然后我询问用户他们想在数组中的什么地方输入空格。这个空白空间就像数组中所有其他信息的分隔符。

例如,如果用户在 userInputVariable 的开头输入 10,然后在空格处输入 5。打印后,数字应如下所示:

1、2、3、4、--、5、6、7、8、9、10。

我的计划是创建一个 for 循环并尝试将数组中的所有数字移回从空白变量开始的位置。

我目前拥有的,但不起作用:

for (int i = blankSpaceVariable; i < table.length - 1; i++) 
{
table[i] = table[i + 1];
}
table[blankSpaceVariable] = "--";

在我当前的代码中,数字是这样的:

1、2、3、4、6、7、8、9、10

也尝试用几种不同的方式完成此操作,但我的二维数组中的其他信息没有随数字移动。所以我认为这种方法有望将我的二维数组中的所有信息向下移动,并为空白部分让路。

非常感谢所有帮助!

最佳答案

如果你想把数字移动到下一个位置,那么你应该从数组的末尾开始。

for (int i = table.length - 1; i > blankPosition; i--) {
table[i] = table[i - 1];
}
table[blankPosition] = 99;

根据您的示例,可能需要从 blankPosition 中减去 1(您说如果 blankPosition 为 5,则 table[4]--),但在进入循环之前这样做可能会很好(这是为实际实现格式化数据的问题)。

重命名 table 可能也是个好主意。


非常讨厌示例实现:

public class Arrays {

public static void main(String[] args) {
Integer blankPosition = Integer.parseInt(args[0]);
// Using 99 instead of "--" because of array type
int[] table = new int[]{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 99};
printEm(table);
for (int i = table.length - 1; i > blankPosition; i--) {
table[i] = table[i - 1];
}
table[blankPosition] = 99;
printEm(table);
}

public static void printEm(int[] array) {
for(int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
System.out.println();
}
}

让我们运行它:

$ java Arrays 5
1 2 3 4 5 6 7 8 9 10 99
1 2 3 4 5 99 6 7 8 9 10

关于java - 如何在 Java 中移动数组中的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13225683/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com