这是我的代码,用于存储在字符串中并从列表中读取:
ArrayList<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
list.add("three");
String listString = "";
for (String s : list)
{
listString += s + ", ";
}
System.out.println(listString);
最后添加额外的逗号,如何删除最小行数并执行代码。请帮忙!
答案 0 :(得分:3)
Java 8有一个很好的新StringJoiner
类,它就是为此而制作的......
ArrayList<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
list.add("three");
String listString = "";
StringJoiner sj = new StringJoiner(", ");
for (String s : list) {
sj.add(s);
}
listString = sj.toString();
System.out.println(listString);
哪个输出
one, two, three
如果你没有幸运地使用Java 8(我感到很痛苦),那么你可以使用StringBuilder
并简单地删除最后两个字符,比如......
ArrayList<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
list.add("three");
String listString = "";
StringBuilder sb = new StringBuilder(64);
for (String s : list) {
sb.append(s).append(", ");
}
listString = sb.delete(sb.length() - 2, sb.length()).toString();
System.out.println(listString);
现在,显然,您应该在执行删除之前检查生成的StringBuilder
的长度是否足够长(有内容),但我会将其留给您;)
答案 1 :(得分:3)
试试这个:
ArrayList<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
list.add("three");
System.out.println(list.toString().replaceAll("\\]|\\[", ""));
输出:
one, two, three
答案 2 :(得分:2)
作为StringJoiner
和其他类的替代,您也可以使用第一个元素初始化listString
,在下一个元素之前添加逗号并在索引1处开始迭代。您只能'再使用foreach了。
ArrayList<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
list.add("three");
String listString = list.get(0);
for (int i = 1;i<list.size();++i) {
listString += ", " + list.get(i);
}
System.out.println(listString);
答案 3 :(得分:1)
这有效:
listString = listString.substring(0, listString.length() - 2);
System.out.println(listString);
答案 4 :(得分:0)
ArrayList<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
list.add("three");
String listString = "";
for (String s : list)
{
listString += ", " + s;
}
System.out.println(listString.replaceFirst(",",""));
您可以使用上述代码。在开始时附加逗号,然后用空白字符串替换第一个逗号。
答案 5 :(得分:0)
这是一个简单的解决方案。
if (list.endsWith(",")) {
list= list.substring(0, list.length() - 1);
}
希望它有效。
答案 6 :(得分:0)
先前的Java 8:
StringBuilder listString = new StringBuilder();
for (String id : list){
listString.append(id).append(",");
}
String result =listString.toString().replaceAll(",$", "");
正则表达式",$"
将检测最后一个逗号。
使用Java 8:
list.stream().collect(Collectors.joining(","));