如何在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]=“--”;
编辑得很好+我不知道答案,但删除了以前的评论,现在是噪音。