Java 按列将字符串读入数组
我试图使用列主顺序将字符串对象从Java 按列将字符串读入数组,java,arrays,multidimensional-array,Java,Arrays,Multidimensional Array,我试图使用列主顺序将字符串对象从char数组读入2d数组: 这就是我尝试过的: int x = 0; for (int column = 0; column < matrix[0].length; column++) {//cols for (int row = 0; row < matrix.length; row++, x++) {//rows if(matrix[row][column] == null) { if (x &
char
数组读入2d数组:
这就是我尝试过的:
int x = 0;
for (int column = 0; column < matrix[0].length; column++) {//cols
for (int row = 0; row < matrix.length; row++, x++) {//rows
if(matrix[row][column] == null) {
if (x < ciphertextCharacters.length) {
matrix[row][column] = Character.toString(inputChars[x]);
}
}
}
}
请注意,在这段代码运行之前,“*”字符串已经在数组中了——这就是为什么我只在索引为null时添加新值的原因
目前,我得到的结果2D数组是:
+---+----+----+
| t | e | n |
+---+----+----+
| t | i |null|
+---+----+----+
| g | * | * |
+---+----+----+
这不是我所需要的。问题是根据条件的结果将
输入字符[x]
放入矩阵[row][column]
,但x
无条件递增:
for (int row = 0; row < matrix.length; row++, x++) {
// ^^^
for(int row=0;row
将循环中的无条件增量替换为赋值时的条件增量应该可以解决此问题:
for (int row = 0; row < matrix.length; row++) {
...
matrix[row][column] = Character.toString(inputChars[x++]);
...
}
for(int row=0;row
您太频繁地增加x
。将x++
从循环声明移动到if
块的末尾
for (int row = 0; row < matrix.length; row++) {
...
matrix[row][column] = Character.toString(inputChars[x++]);
...
}