如何将逗号分隔的字符串添加到ArrayList?我的字符串“returnedItems”可能包含1或20个我想添加到我的ArrayList“selItemArrayList”的项目。
在填充ArrayList之后,我想稍后迭代它并将项目格式化为逗号分隔的字符串,项目之间没有空格。
答案 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)
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);