我使用toString
方法ArrayList
將ArrayList
數據存儲到字符串中。我的問題是,我該如何走另一條路?是否有現成的方法將String
實例中的數據解析回ArrayList
?Java ArrayList的(ArrayList).toString的反轉是什麼?
回答
簡短答案是「否」。沒有簡單的方法從字符串中重新導入對象,因爲某些類型信息在toString()
序列化中丟失。
然而,對於特定的格式和特定(已知)的類型,你應該能夠編寫代碼來解析手動的字符串:
// Takes Strings like "[a, b, c]"
public List parse(String s) {
List output = new ArrayList();
String listString = s.substring(1, s.length() - 1); // chop off brackets
for (String token : new StringTokenizer(listString, ",")) {
output.add(token.trim());
}
return output;
}
從他們系列化形式重建的對象通常被稱爲反序列化
在這種情況下,我使用的是字符串,所以我猜想自己解析它很簡單。謝謝。 – user174772 2009-10-05 16:26:50
當然,這隻有在字符串本身不包含逗號字符時纔有效,這是我的回覆中的第一點。 – 2009-10-05 17:51:42
我個人會爲此創建一個編解碼器類,因此可以對該類進行參數化(稍後),並檢查特定的好/壞編碼。 – 2014-10-25 13:53:40
這裏有一個類似的問題:
Reverse (parse the output) of Arrays.toString(int[])
這取決於你在ArrayList中存儲內容,以及是否說這些物體很容易從他們的字符串表示重建。
ArrayList由什麼組成?正如其他說,它可能在某些情況下是不可能的,但很可能與保證工作如果:
陣列的元件的每個字符串表示可被明確地標識的(因爲它可以是,例如,如果ArrayList包含
Integer
s)有一種方法可以通過其字符串表示形式創建原始類型的對象。我覺得最優雅的用靜態方法
fromString
當然,這模仿了整個(德)序列化框架做到這一點。
Apache Commons ftw。
Arrays.asList(StringUtils.split(StringUtils.substringBetween("[1, 2, 3]", "[", "]"), ", "))
- 1. 在2d ArrayList中反轉外部ArrayList
- 2. ArrayList和toString
- 3. ArrayList toString()方法
- 4. Java中的ArrayList是什麼意思
- 5. 沒有方括號的Java toString ArrayList
- 6. 如何反轉ArrayList
- 7. ArrayList <String> toString()
- 8. 的ArrayList是Java中
- 9. Arraylist ArrayList的Java大小
- 10. 轉移的ArrayList在Java
- 11. 什麼是靜態ArrayList?
- 12. 什麼是List與ArrayList?
- 13. arraylist字符串反轉
- 14. 如何反轉ArrayList輸入?
- 15. 多態性:爲什麼使用「List list = new ArrayList」而不是「ArrayList list = new ArrayList」?
- 16. Java二維ArrayList ArrayList
- 17. Java ArrayList - 返回ArrayList
- 18. 使用.toString顯示ArrayList
- 19. JList to List toString()對象ArrayList
- 20. 使用toString打印ArrayList
- 21. 反向ArrayList的最簡單方法是什麼?
- 22. 的Java的ArrayList
- 23. 的Java的ArrayList轉換爲字符串,返回ArrayList的?
- 24. ArrayList對象是Java的Android
- 25. 什麼是Scala版本的ArrayList和Tuple?
- 26. 最後的ArrayList是什麼意思?
- 27. ArrayList中的Int參數,它是什麼?
- 28. ArrayList是空的,但爲什麼?
- 29. 如何轉換一個ArrayList另一個的ArrayList中的Java
- 30. 的Java的ArrayList:內的ArrayList合併的ArrayList創建一個ArrayList的
注意,如果列表中的元素不是String對象,則反向操作可能是不可能做到的,因爲'theList.toString()'將調用'的toString()'上的所有元素,並且可能會或可能不是可逆動作(即,字符串表示可能不包含重現原始對象所需的全部信息)。 – 2009-10-05 07:01:04