将逗号分隔的字符串添加到ArrayList,反之亦然

如何将逗号分隔的字符串添加到ArrayList? 我的字符串“returnedItems”可能包含1或20个项目,我想将其添加到我的ArrayList“selItemArrayList”中。

在填充ArrayList之后,我想稍后迭代它并将项目格式化为逗号分隔的字符串,项目之间没有空格。

String returnedItems = "a,b,c"; List sellItems = Arrays.asList(returnedItems.split(",")); 

现在迭代列表并将每个项追加到StringBuilder:

 StringBuilder sb = new StringBuilder(); for(String item: sellItems){ if(sb.length() > 0){ sb.append(','); } sb.append(item); } String result = sb.toString(); 

单行总是很受欢迎:

 Collections.addAll(arrayList, input.split(",")); 

splitasList可以解决问题:

 String [] strings = returnedItems.split(","); List list = Arrays.asList(strings); 

简单的单线程:

 selItemArrayList.addAll(Arrays.asList(returnedItems.split("\\s*,\\s*"))); 

当然,如果您的条目中包含逗号,则会更复杂。

这有助于:

 for (String s : returnedItems.split(",")) { selItemArrayList.add(s.trim()); } //Shorter and sweeter String [] strings = returnedItems.split(","); selItemArrayList = Arrays.asList(strings); //The reverse.... StringBuilder sb = new StringBuilder(); Iterator iter = selItemArrayList.iterator(); while (iter.hasNext()) { if (sb.length() > 0) sb.append(","); sb.append(iter.next()); } returnedItems = sb.toString(); 

如果字符串本身可以包含逗号,则事情会变得更复杂。 考虑使用众多开源CSV解析器中的一种,而不是自己滚动。 虽然它们设计用于读取文件,但至少OpenCSV还会解析您提供的单个字符串。

  • Commons CSV
  • OpenCSV
  • 超级CSV
  • OsterMiller CSV

如果没有引用单个项目,则:

  QString str = "a,,b,c"; QStringList list1 = str.split(","); // list1: [ "a", "", "b", "c" ] 

如果引用了这些项,我会添加“[]”字符并使用JSON解析器。

您可以在String上使用split()方法将String转换为可以循环的数组。

虽然您可以跳过使用正则表达式的循环和解析来使用String上的replaceAll()来删除空格。

 String list = "one, two, three, four"; String[] items = list.split("\\p{Punct}"); List aList = Arrays.asList(items); System.out.println("aList = " + aList); StringBuilder formatted = new StringBuilder(); for (int i = 0; i < items.length; i++) { formatted.append(items[i].trim()); if (i < items.length - 1) formatted.append(','); } System.out.println("formatted = " + formatted.toString()); 
 import com.google.common.base.*; Iterable items = Splitter.on(",").omitEmptyStrings() .split("Mango,Apple,Guava"); // Join again! String itemsString = Joiner.join(",").join(items);