如何将String转换为ArrayList?

Sam*_*hra 92 java string arraylist converter

在我的String中,我可以使用逗号分隔的任意数量的单词.我希望每个单词都添加到ArrayList中.例如:

String s = "a,b,c,d,e,.........";
Run Code Online (Sandbox Code Playgroud)

aio*_*obe 232

尝试类似的东西

List<String> myList = new ArrayList<String>(Arrays.asList(s.split(",")));
Run Code Online (Sandbox Code Playgroud)

演示:

String s = "lorem,ipsum,dolor,sit,amet";

List<String> myList = new ArrayList<String>(Arrays.asList(s.split(",")));

System.out.println(myList);  // prints [lorem, ipsum, dolor, sit, amet]
Run Code Online (Sandbox Code Playgroud)

该帖子已被改写为一篇文章在这里.

  • +1:`new ArrayList <String>()`可能是多余的,具体取决于它的使用方式.(就像你的例子;) (9认同)
  • 请注意,您无法将元素添加到Arrays.asList返回的列表中.OP想要一个ArrayList(这是完全合理的),并且ArrayList构造*是必需的. (6认同)

Sam*_*hra 30

 String s1="[a,b,c,d]";
 String replace = s1.replace("[","");
 System.out.println(replace);
 String replace1 = replace.replace("]","");
 System.out.println(replace1);
 List<String> myList = new ArrayList<String>(Arrays.asList(replace1.split(",")));
 System.out.println(myList.toString());
Run Code Online (Sandbox Code Playgroud)

  • 如果你必须修剪括号,你可以用`replace = s1.replaceAll("^ \\ [|] $","")一步一步完成;` (7认同)

Rav*_*avi 7

在Java 9中,使用List#of,这是一个不可变列表静态工厂方法,变得更加简单.

 String s = "a,b,c,d,e,.........";
 List<String> lst = List.of(s.split(","));
Run Code Online (Sandbox Code Playgroud)


小智 7

比较容易理解的是这样的:

String s = "a,b,c,d,e";
String[] sArr = s.split(",");
List<String> sList = Arrays.asList(sArr);
Run Code Online (Sandbox Code Playgroud)


And*_*ndy 6

选项1:

List<String> list = Arrays.asList("hello");
Run Code Online (Sandbox Code Playgroud)

选项2:

List<String> list = new ArrayList<String>(Arrays.asList("hello"));
Run Code Online (Sandbox Code Playgroud)

在我看来,Option1更好,因为

  1. 我们可以减少从2到1 asList创建的ArrayList对象的数量.方法创建并返回一个ArrayList对象.
  2. 它的性能要好得多(但它返回一个固定大小的列表).

请参阅此处的文档