用char数组填充2d数组Java



如何将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"

在最后的双循环中,一个循环用于行,一个用于列。不要使用:

    for (int i=0; i<RootN; i++) {
        for (int j=0; j<RootN; j++) {
            box[i] = Rows;
            System.out.println(Rows);
        }
    }

使用println打印Rows的每个值,因此在每行后面添加一个"n"。相反,请尝试使用:

    for (int i=0; i<RootN; i++) {
        for (int j=0; j<RootN; j++) {
            box[i] = Rows;
            System.out.print(Rows);
        }
        System.out.println();
    }

这样,所有的值都应该打印在同一行,然后换一行。

相关内容

  • 没有找到相关文章

最新更新