如何将字符串转换为2D字符数组JAVA
我想将字符串转换为2D字符数组。如何将字符串转换为2D字符数组JAVA
因此,例如,如果输入字符串是:+dd+babd+b_a+ddc
输出应该是一个二维字符数组,看起来像下面这样:
+dd+
babd
+b_a
+ddc
下面的代码是我到目前为止已经试过。在这里,我试图获取索引为i的字符,并将其存储在位置[0] [0]处的二维char数组中,然后将其存储在位置[0] [0]处的下一个字符,依此类推。
[请注意,我在循环体中添加了@param注释,以帮助您了解每个参数的存储内容。我明白@param应该在方法头部而不是在主体中]。
public Board(String startConfig, String endConfig) {
int row = 4;
int column = 4;
// @param startConfig currently stores the string +dd+babd+b_a+ddc.
// @param endConfig is currently unused.
char[][] boardArray = new char[row][column]; // Creates a 4x4 board.
for (int i = 0; i < row; i++) {
for (int j = 0; j < column; j++) {
boardArray[i][j] = startConfig.charAt(i);
System.out.println(boardArray[i][j]);
}
}
}
我真的被卡住了,想不出别的什么。我已经尝试使用.toCharArray,但此方法将字符串转换为一维char数组,这对我来说没有什么用处。
我想事先感谢您的时间和帮助。
您需要为String
另一个柜台偏移
int offset = 0;
for (int i=0; i < row; i++) {
for (int j=0; j < column; j++) {
boardArray[i][j] = startConfig.charAt(offset++);
System.out.println(boardArray[i][j]);
}
}
或按Tim的出色答卷,偏移量可以计算为j + i*column
对于输出匹配尝试
int offset = 0;
for (int i=0; i < row; i++) {
for (int j=0; j < column; j++) {
boardArray[i][j] = startConfig.charAt(offset++);
System.out.print(boardArray[i][j]);
}
System.out.println();
// uncomment below line if you want a blank line
// System.out.println();
}
你很近,但你需要使用当前行和列来分配每个位置。在这种情况下,下面的表达式决定了当前字符的索引:
j + i*column <--- offset by this many rows
^^^
current column
for (int i=0; i < row; i++) {
for (int j=0; j < column; j++) {
boardArray[i][j] = startConfig.charAt(j + i*column);
System.out.println(boardArray[i][j]);
}
}
你能详细说明一下吗?你如何使用二维数组来生成输出? –
@Ree没有创造力,但无论如何我已经提出了你的问题。 –
请看我编辑,应该修复你的输出 –
这个应该匹配。 –