[英]ArrayList fail to convert to a String array using (String[])list.toArray(). Why?
[英]Why is list.toArray() an object while converting ArrayList to String[]?
明確地說,這不是這些問題Convert ArrayList to String和Convert ArrayList contains strings的重復,但它與它們相關。 假設我們有一個從ArrayList
到String []
的轉換方法,如我提到的第一個鏈接的答案中所述:
List<String> stockList = new ArrayList<String>();
stockList.add("stock1");
stockList.add("stock2");
String[] stockArr = new String[stockList.size()];
stockArr = stockList.toArray(stockArr);
for(String s : stockArr)
System.out.println(s);
使用打印語句,我的輸出將如下所示:
stock1
stock2
但是,如果我希望我的輸出采用數組格式(例如[stock1,stock2]
)並且我排除了到String
的轉換,即最后的 for 循環呢?
如果我只打印出String[]
它會給我一個垃圾值,如[Ljava.lang.String;@5636bc0a
。 我猜這可能是因為 jvm 將toArray
作為對象返回的問題。
為什么會這樣,有什么解決方法?
我需要一個String []
來給我一個有意義的值。 我需要這種格式,因為我使用這種轉換在我的項目中調用一個 JAX-WS 函數,它只接受String[]
值:
myJaxWSObj.setValue(String[] myArrayOfStrings);
編輯
感謝您的回答,但你們中的一些人一定誤解了這個問題。 我想將 ArrayList 轉換為 String[] 而不是 String。 所以做任何類型的.toString()
對我沒有多大幫助,因為正如我上面提到的,我需要調用一個只接受String[]
值的 JAX-WS 類。 所以問題不在於System.out.println()
。
假設我進行了.toString()
轉換,我需要通過執行類似stockArr.split("")
將其轉換回String[]
。 我想知道是否還有其他解決方法。
編輯 2
這與打印數組無關,它與將列表轉換為字符串數組有關。
數組是對象。 使用System.out.println()
打印它們將調用默認的Object#toString()
方法,該方法返回帶有哈希碼值的對象類名稱。 要打印數組的字符串表示,請使用Arrays.toString(Object[])
:
返回指定數組內容的字符串表示形式。 如果數組包含其他數組作為元素,它們會通過繼承自 Object 的
Object.toString()
方法轉換為字符串,該方法描述的是它們的身份而不是它們的內容。
有一個有用的庫函數Arrays.toString(arr)
String[] arr = { "a", "b" };
System.out.println(Arrays.toString(arr));
//Output: [a, b]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.