2015-08-26 86 views
-1

我有这样的字符串数组:转换1D字符串数组二维String数组

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。

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

+1

是的,它的可能性。试试看。 – uoyilmaz

回答

2

这是可能的。

想想映射。

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)

+0

谢谢,创建了一个函数,它的下一个: '为(INT I = 0; I

+0

'index'可能超出范围。如果数组是矩形并且有6列,那么为了适合26个字符,您需要5行。这给了30个插槽。这会迫使'index'超出'spltstr'有效范围。另一种可能性是,你已经解释了这一点,并建立了一个锯齿阵列,最后一行没有那么多的单元格。那么'matrix [i] [j]'可能超出范围,因为inner for循环总是引用矩阵第一行的长度。 – bombe

+0

是的,事实上,我发现我的索引增长速度快于'i'和'j'计数器,我通过添加if(index

0

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

在循环外有3个称为Row,Col和Out的变量。你知道每行有X个字母。因此,如果您填充了矩阵的第(X-1)个索引,将行更新为row ++,并将col更改为0,那么您需要检查while循环。循环的每次迭代都会执行Col ++以及Out ++。

由于行和列和列正在更新,您可以将矩阵[行] [列]设置为等于spltstr [列]。

一旦用完了字母表中的字母,您将完成该问题。