2012-05-22 93 views
0

我在編碼中途時,我發現,NetBeans的給我關於下面的代碼中的錯誤:我可以在java中將1d數組存儲到2d數組中嗎?

String [][]table={getRowArray()}; 
//getRowArray() will return me a 1D string array 

有什麼辦法來存儲我的方法到二維數組返回的一維數組,而不是直接使用for循環? 感謝您提供任何幫助!

+0

可以給這樣的東西 - String [] [] table = {getRowArray(),0}; – Addicted

+0

getRowArray()'的返回類型是什麼? –

+0

返回類型在數組語句後的註釋中提及。 –

回答

2

對於初學者這應該工作 - 是,有可能做到這一點。

public class Test { 
    public String[] dum() { 
        String[] x = {"Not sure"}; 
        return x; 
    } 

    public static void main(String[] args) { 
        Test t = new Test(); 
        String[][] words = {t.dum()}; 
        System.out.println(words[0][0]); // prints "Not sure" 
    } 
} 

仔細檢查你遇到的錯誤。確保getRowArray()的返回類型確實是String[]

+0

+1好點!我將我的答案修改爲空白。 :) – cheeken

0

對此可能有更好的解決方案,但我相信你需要爲其中一個維度指定一個索引來存儲它,所以你要將一維數組存儲到一個單獨的索引中第一維。

String [][]table; 
table[0] = getRowArray(); 

由於數組存儲的第一維其他陣列

+4

這幾乎可行 - 但你需要首先初始化'table'。 – cheeken

+0

如果這是工作的(在初始化'table'以便'table [0]'不生成NPE)之後,那麼OP的原始代碼就可以工作。我懷疑'getRowArray()'的返回類型是'String []'以外的東西。 –

+0

@TedHopp - OP明確說'// getRowArray()會返回一個1D字符串數組' –

0
String [] oneD = { "1", "2", "3", "4" }; // getRowArray(); 
String [][] twoD1 = { oneD }; 
String [] anotherOneD = null; // or filled 
String [][] twoD2 = { oneD, anotherOneD }; 
String [][] twoD3 = new String[][] { oneD }; 
String [][] twoD4 = new String[][] { oneD, anotherOneD }; 
相關問題