我用java编写了一个代码来交换3*4矩阵的列。
String[][] a = { { a,t,t,a},
{ c,k,a,t},
{ d,a,w,n }
};
我想要的输出是: 一个,t,t,一个, t,a,k,c, n、w、a、d。
所以我的循环如下:
for(i=0;i<=2;i++) {
for(j=0;j<=5;j++) {
if(j<=2) {
temp=a[i][j+1];
a[i][j+1]=a[i][j];
a[i][j]=temp;
}
if(j>3) {
temp=a[i][j-3];
a[i][j-3]=a[i][j-4];
a[i][j-4]=temp;
} else {
temp=a[i][j-1];
a[i][j-1]=a[i][j-2];
a[i][j-2]=temp;
}
}
}
错误是:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
at Execute.swapColums(DtTwo.java:69)
at DtTwo.main(DtTwo.java:11)
请帮忙..
最佳答案
示例:
public class Test
{
public static void main(String args[])
{
String[][] array2d = {
{ "a","t","t","a"},
{ "c","k","a","t"},
{ "d","a","w","n" }
};
for (int i = 0; i < array2d.length; i++)
{
swapCols(array2d[i]);
}
print(array2d);
}
private static void swapCols(String s[])
{
for (int i = 0; i < s.length / 2; i++)
{
String temp = s[s.length - 1 - i];
s[s.length - 1 - i] = s[i];
s[i] = temp;
}
}
private static void print(String[][] array2d)
{
System.out.println(Arrays.deepToString(array2d));
}
}
输出:
[[a, t, t, a], [t, a, k, c], [n, w, a, d]]
关于java - 使用java交换3*4矩阵中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14292675/