Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 按列将字符串读入数组_Java_Arrays_Multidimensional Array - Fatal编程技术网

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++]);
    ...
}