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

如何在Java中移动数组中的位置?,java,arrays,string,multidimensional-array,Java,Arrays,String,Multidimensional Array,只移动数组元素的程序。 两个变量:userInputVariable和blankSpaceVariable 我有一个名为table的二维数组。定义为表[userInputVariable+1][6] 我以表格格式打印出这个数组,最左边的列用用户在程序开始时输入的数字进行编号 然后,我询问用户希望在数组中的何处输入空白。这个空白区域就像是数组中所有其他信息的分隔符 for (int i = table.length - 1; i > blankPosition; i--) { tab

只移动数组元素的程序。

两个变量:
userInputVariable
blankSpaceVariable

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

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

然后,我询问用户希望在数组中的何处输入空白。这个空白区域就像是数组中所有其他信息的分隔符

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

例如,如果用户在开始时输入了<代码> USERIN变量,然后进入空白空间5。打印后,数字应如下所示:

一,二,三,四,五,六,七,八,九,十

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

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

for (int i = blankSpaceVariable; i < table.length - 1; i++) 
{
table[i] = table[i + 1];
}
table[blankSpaceVariable] = "--";
for(int i=blankSpaceVariable;i
根据我当前的代码,数字如下所示:

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

我也尝试了几种不同的方法来完成这个任务,但是我的2D数组中的其他信息没有随着数字移动。因此,我认为这种方法有望将2D数组中的所有信息向下移动,并为空白部分让路


非常感谢您的帮助

如果要将数字移动到下一个位置,则应从数组的末尾开始

for (int i = table.length - 1; i > blankPosition; i--) {
    table[i] = table[i - 1];
}
table[blankPosition] = 99;
从您的示例中,可能需要从
blankPosition
中减去1(您说如果
blankPosition
是5,那么
表[4]
--
),但在进入循环之前,这可能是一个很好的做法(这是为实际实现格式化数据的问题)

也许重命名
也是个好主意


真正令人讨厌的示例实现:

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();
        }
}
开始工作了

因为我使用的是二维数组,所以我必须运行另一个for循环来运行第二个维度。这是最后的代码

非常感谢@69

for (int i = table.length - 1; i > startBlank; i--) 
{
    for (int j = 0; j < table[i].length; j++) 
    {
        table[i][j] = table[i - 1][j];
    }
}
table[startBlank][0] =  "--";
for(int i=table.length-1;i>startBlank;i--)
{
对于(int j=0;j<表[i]。长度;j++)
{
表[i][j]=表[i-1][j];
}
}
表[startBlank][0]=“--”;

编辑得很好+我不知道答案,但删除了以前的评论,现在是噪音。