繁体   English   中英

将二维数组内容放入一维数组 Java

[英]Bring 2d array contents into 1d array Java

我正在尝试在 Java 控制台中重新创建 Thue Morse 序列,并且需要将一维数组的内容转换为二维数组。 我尝试使用 2 个 for 循环,其中一个是嵌套的,但结果收到 Ljava.lang.String;@42d3bd8b

    int x = Integer.parseInt(args[0]);
    String[][] array = new String [x][x];
    String thue   = "0";
    String morse  = "1";


    //
    for (int i = 1; i <= array.length; i++) {
        String t = thue;             // save away values
        String m = morse;
        thue  += m;
        morse += t;

    }

    String[] split = (thue.split("(?!^)"));

    for (var y = 0; y<split.length; y++){
        if (split[y] == "0"){
            split[y] = "+";
        }
        else split[y] = "-";
    }
    int index = 0;
    for (var i = 0; i < array.length; i++){
        for (var j = 0; j < array[i].length;j++){
            array[i][j] = (split[index]);
            index++;
        }
    }
    System.out.println(Arrays.toString(array));

    }



}

有2处需要更正

1)在这段代码中

   if (split[y] == "0"){
        split[y] = "+";
    }

字符串不能作为基元进行比较。 用 equals 方法替换equals运算符

    if (split[y].equals("0")){
        split[y] = "+";
    }

2)数组的toString方法只能用于将1D arrays转换为字符串格式。

你必须为你的目的使用deepToString

System.out.println(Arrays.deepToString(array));

我发现了如何修复它,我将数组转换为 integer 数组,然后在设置 split[index] 等于数组的索引时,我刚刚在 split[index] 周围添加了 Intger.parseInt

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM