2015-08-26 100 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 [列]。

一旦用完了字母表中的字母,您將完成該問題。