如何将char 1d数组转换为2d数组,然后通过一次读取每列来打印2d数组。即使用参数“-encrypt abcd”
public class CHARSTRING {
public static void main(String[] args) {
String encrypt = args[0];
String letters = args[1];
//length of letters to be encrypted
int n = letters.length();
char Rows [] = letters.toCharArray();
if (encrypt.equals("-encrypt")) {
if ( (n*n)/n == n) {
int RootN = (int) Math.sqrt(n); //find depth and width of 2d array
char [][] box = new char [RootN][RootN]; //declare 2d array
for (int i=0; i<RootN; i++) {
for (int j=0; j<RootN; j++) {
box[i] = Rows;
System.out.println(Rows);
//输出是4行: ABCD
但我试图让输出为“acbd”
答案 0 :(得分:0)
在最后的双循环中,有一个循环用于行,一个用于列。不要使用:
for (int i=0; i<RootN; i++) {
for (int j=0; j<RootN; j++) {
box[i] = Rows;
System.out.println(Rows);
}
}
用println打印每行的值,所以它会添加一个&#34; \ n&#34;在每一行之后。相反,请尝试使用:
for (int i=0; i<RootN; i++) {
for (int j=0; j<RootN; j++) {
box[i] = Rows;
System.out.print(Rows);
}
System.out.println();
}
这样,所有值都应打印在同一行上,然后更改为新行。