[英]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.