Java 将一维字符串数组转换为二维字符串数组

Java 将一维字符串数组转换为二维字符串数组,java,arrays,string,multidimensional-array,Java,Arrays,String,Multidimensional Array,我有一个字符串数组: String[] spltstr = {"a","b","c","d","e","f",...,"z"}; 我需要将每个值放入如下数组: String[][] matrix; 我知道这两个阵列的尺寸,作为输出,我需要矩阵如下所示: matrix={{"a","b","c","d","e","f"}, {"g","h","k","l","m","n"}, {...................."z"}}; 你能告诉我这是否可行吗? 我

我有一个字符串数组:

String[] spltstr = {"a","b","c","d","e","f",...,"z"};
我需要将每个值放入如下数组:

String[][] matrix;
我知道这两个阵列的尺寸,作为输出,我需要矩阵如下所示:

matrix={{"a","b","c","d","e","f"},
        {"g","h","k","l","m","n"},
        {...................."z"}};
你能告诉我这是否可行吗? 我遇到了一些问题,因为第一个数组的维数是“n”,而第二个数组的维数是“m”x5

如果你认为有更好的方法来完成这件事,我将不胜感激。

这是可能的

想想地图

n  (i,j)
0->(0,0)
1->(0,1)
2->(0,2)
3->(0,3)
4->(0,4)
5->(1,0)
6->(1,1)
7->(1,2)
等等


所以我们的想法是把n转换成一对(i,j)

如果你知道数组的大小,你可以写一个while循环来填充矩阵

在循环外部有3个变量,分别称为Row、Col和Out。你知道每行有X个字母。因此,如果已经填充了矩阵的第(X-1)个索引,那么就检查while循环,将行更新为行++,将列更新为0。循环的每一次迭代,您将执行Col++,以及Out++

因为行、列和输出正在更新,所以您可以将矩阵[Row][Col]设置为等于spltstr[Out]


一旦字母表中的字母用完,你就可以完成这道题。

是的,这是可能的。试一试。谢谢,我创建了一个函数来执行下一步:
for(int I=0;I
for(int j=0;j
矩阵[I][j]=spltstr index];
索引++
<
我在循环之前将索引设置为0,但它仍然返回java.lang.ArrayIndexOutOfBoundsException,我不明白为什么,有什么想法吗?
索引可能超出范围。如果数组是矩形,有6列,那么为了容纳26个字符,需要5行。这将提供30个插槽。这将迫使
index
超出
spltstr
有效范围。另一种可能性是,您已经考虑到了这一点,并构建了一个锯齿状数组,最后一行没有那么多的单元格。然后
矩阵[i][j]
可能超出范围,因为内部for循环总是引用矩阵第一行的长度。是的,事实上我发现我的索引比
i
j
计数器增长得快,我通过添加
if(index)解决了这个问题