2013-10-14 66 views
3

我使用list.toString()将包含"String1","String2"ArrayList<String> list转换为字符串。结果字符串格式为[String1, String2]。有什么办法可以将这个结果转换回ArrayList<String>将字符串转换为ArrayList <String> in Java

+1

看一看 - 这可能是你在找什么。 –

+0

什么是阻止你保持ArrayList而不是将其转换为String并返回int ArrayList? 通常,您还可以使用'toArray'方法将'ArrayList '转换为'String []'。 – Matthias

+1

你为什么需要这样做?你想达到什么目的? –

回答

4

尝试在`String`类的`split`方法将下面的代码

String value = "[String1,String2,String3]"; 
value = value.subString(1,value.length()-1); 
String[] split = value.split(","); 
List<String> sampleList = Arrays.asList(split); 
+0

不需要。这不一定会给出一个'ArrayList',这就是问题的要求。最后一行的右侧需要是'new ArrayList (Arrays.asList(split))''。 –

+0

@David Wallace,谢谢你的建议。为什么最后一行的右侧需要新建ArrayList (Arrays.asList(split))?你能清楚我的疑问吗? – Woody

+0

仅仅因为OP说他希望将结果作为一个ArrayList,但是Arrays.asList的规范并不要求它返回一个ArrayList。我相信当前版本的Java 7 _does_实际上从'Arrays.asList'返回一个'ArrayList';但规范并不要求,未来的版本可能会返回不同的结果。 –

1

没有直接的办法。刚刚得到该字符串从字符串中删除那些[],然后再由,拆分,然后添加回列表。

这样的事情,考虑到给定的格式。

String s = "[String1, String2]"; 
    s = s.substring(1, s.length() - 1); 
    List<String> list = new ArrayList<>(); 
    for (String string : s.split(",")) { 
     list.add(string.trim()); 
    } 
+0

请注意,这不是万无一失的;如果内部字符串有','(注意空格,它应该放在'split'中),那么你最终会得到额外的字符串。 – chrylis

+0

@chrylis同意。考虑给定的格式。 –

1

创建一个新的类延伸的数组列表

public class CustomArrayList<Item> extends ArrayList<Item> { 

并重写

的toString

方法,该方法可以给用逗号分隔的字符串表示。 现在使用

new CustomArrayList<Item>(Arrays.asList(list.toString().split(",")))

把它找回来的ArrayList中。

相关问题