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

时间:2011-05-23 11:59:17

标签: java arraylist csv

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

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

11 个答案:

答案 0 :(得分:16)

String returnedItems = "a,b,c";
List<String> 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();

答案 1 :(得分:8)

单行总是很受欢迎:

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

答案 2 :(得分:5)

splitasList可以解决问题:

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

答案 3 :(得分:2)

简单的单行:

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

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

答案 4 :(得分:1)

这可以提供帮助:

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<String> iter = selItemArrayList.iterator();
while (iter.hasNext()) {
    if (sb.length() > 0) 
        sb.append(",");
    sb.append(iter.next());
}

returnedItems = sb.toString();

答案 5 :(得分:1)

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

答案 6 :(得分:1)

sudo service mysql restart

第一步:将逗号分隔的字符串转换为字符串数组

String csv = "Apple, Google, Samsung";

第二步:将String数组转换为String列表

String[] elements = csv.split(",");

第三步:将固定列表复制到ArrayList ArrayList listOfString = new ArrayList(fixedLenghtList);

 List<String> fixedLenghtList = Arrays.asList(elements);

System.out.println(“ ArrayList的大小:” + listOfString.size()); 输出:

System.out.println("list from comma separated String : " + listOfString);

答案 7 :(得分:0)

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

 QString str = "a,,b,c";

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

如果引用了这些项目我会添加&#34; []&#34;字符并使用JSON解析器。

答案 8 :(得分:0)

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

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

答案 9 :(得分:0)

String list = "one, two, three, four";
String[] items = list.split("\\p{Punct}");
List<String> 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());

答案 10 :(得分:0)

import com.google.common.base.*;

Iterable<String> items = Splitter.on(",").omitEmptyStrings()
                                 .split("Mango,Apple,Guava");

// Join again!
String itemsString = Joiner.join(",").join(items);