2015-01-13 39 views
0

你好,我想運行我的程序,但我得到一個非常奇怪的輸出。這個程序工作時,它的一個單一的數組,但是當我使它成爲一個多維的它錯誤了。請幫助messageFormt()錯誤與多維數組

public static void main(String[] args) throws IOException { 

      MessageFormat messageFormat = new MessageFormat("insert into {0} values (''{1}'', ''{2}'', ''{3}'', ''{4}'')"); 
      Object[][] data = { {"000", "111", "222","333","444","555"}, 
           {"000", "123", "234","345","456","567"} }; 

      System.out.println(messageFormat.format(data)); 
} 

我的輸出是:

run: 
insert into [Ljava.lang.Object;@2a134eca values ('[Ljava.lang.Object;@52934c3b', '{2}', '{3}', {4}) 
BUILD SUCCESSFUL (total time: 0 seconds) 

回答

1

MessageFormat提供的格式非常適合打印一維數組。但它無法打印出二維陣列。

您需要遍歷你的2 d陣列data

for(Object[] array : data) { 
    System.out.println(messageFormat.format(array)); 
} 
0

當你在,你傳遞對象數組傳遞data(這也恰好是對象的數組)。所以,第一個是data[0],第二個是,這兩者似乎是大小6 Object[]

要解決這個問題:

messageFormat.format(data[0]); 

小心的詞,似乎你可能使用它作爲SQL插入語句。我強烈建議您使用PreparedStatement,因爲如果您不太小心,此方法容易出錯並導致SQL注入攻擊!

+0

-Todd感謝您的幫助,我會看看到的PreparedStatement – dc4teg