2015-04-05 129 views
0

單個陣列二維數組我如何填充在Java中的矩陣與一個陣列,而不使用庫?填充在Java

我有這樣的方法

public static String[][] transformArray(String msg, int slice) { 
    String matrix[][] = new String[slice][msg.length()/slice]; 

    String[] msgArray= mensagem.split(""); 


     for (int j = 0; j < matrix.length; j++) { 
      for (int h = 0; h < matrix[j].length; h++) { 
       for (int i = 0; i < matrix.length(); i++) { 
        matrix[j][h] = msgArray[i]; 
      } 
     } 
    } 


    return matrix; 
} 

當我打電話:

String anotherMatrix = transformArray("Java is cool", 2); 

我的回報是這個(我要打印一個矩陣的方法):

l l l l l l 
l l l l l l 

什麼我做錯了?

回答

1

我想,你希望這個

int i = 0; 
for (int j = 0; j < matrix.length; j++) { 
    for (int h = 0; h < matrix[j].length; h++) { 
     matrix[j][h] = msgArray[i++]; 
    } 
} 

,則不應使用3個循環。什麼是你的代碼發生的事情是,每個jh,矩陣條目被替換反過來每一個角色,所以每一個條目與lcool結束了。不應該有每個條目的循環,你只需要一個字符。

0

爲了您的二維陣列內的訪問每一個元素,你將不得不遍歷像這樣:

for(int i=0 ; i<n ; i++) { 
    for(int j=0; j<n ; j++) { 
     myArray[i][j] = inc; 
     inc++; 
    } 
} 

你,而不是使用三個for-loops這是不正確。嘗試調整你的代碼遵循這一設置,它真的很容易。編輯:pbabcdefp已經這樣做了你!