2012-10-16 61 views
0
List<String[]> list = new ArrayList<String[]>(); 
String str = "a b c"; 
list.add(str.split(" ")); 

基本上我想要一個{a,b,c}的數組,但這不起作用。我是否必須迭代並加載每個元素?我將如何做到這一點?將數組添加到列表時出錯<String[]>

我的錯誤看起來就像這樣:

[Ljava.lang.String;@3d4b7453 
[Ljava.lang.String;@24c21495 
+0

你得到什麼錯誤? –

+0

@RohitJain編輯輸出消息。 – meiryo

+5

那些不是錯誤,那些是數組的字符串表示形式。 – ataylor

回答

4

你的代碼工作正常,但它看起來像你打印錯誤的事情。代之以:

for (String[] strs : list) { 
    System.out.println(Arrays.toString(strs)); 
} 

只打印一個數組會給出你所看到的輸出。

+0

謝謝。我如何引用列表中數組的第一個元素? – meiryo

+1

@meiryo'list.get(0)[0]'給出列表中第一個數組的第一個元素。 –

1

你可以使用Arrays.toString()打印數組的元素,

System.out.println(Arrays.toString(list.get(0))); 

或可替換地在它們之間迭代:

for(String s : list.get(0)) System.out.println(s); 
1

嘗試

List<String[]> list = new ArrayList<String[]>(); 
String str = "a b c"; 
list.add(str.split(" ")); 
System.out.println(Arrays.toString(list.get(0))); 
1

我想你想打印方式: -

List<String[]> list = new ArrayList<String[]>(); 
    String str = "a b c"; 
    list.add(str.split(" ")); 

    System.out.println(Arrays.toString(list.get(0))); 

此打印: - [a, b, c]

0

您可以使用Arrays.asList()

List<String> list = new ArrayList<String>(); 
String str = "a b c"; 
list.addAll(Arrays.asList(str.split(" "))); 

要打印的結果是這樣的:

for (int i = 0; i < list.size(); i++) { 
     System.out.println(list.get(i)); 
    } 
}