首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在不显式迭代列表的情况下将List<String>转换为逗号分隔的字符串

如何在不显式迭代列表的情况下将List<String>转换为逗号分隔的字符串
EN

Stack Overflow用户
提问于 2012-06-01 20:57:30
回答 13查看 278.7K关注 0票数 179
代码语言:javascript
复制
List<String> ids = new ArrayList<String>();
ids.add("1");
ids.add("2");
ids.add("3");
ids.add("4");

现在我希望这个列表的输出是1,2,3,4,没有显式地对它进行迭代。

EN

回答 13

Stack Overflow用户

发布于 2014-05-25 17:59:08

关于Android的使用:

代码语言:javascript
复制
android.text.TextUtils.join(",", ids);
票数 486
EN

Stack Overflow用户

发布于 2012-06-01 21:05:35

使用Java 8:

代码语言:javascript
复制
String csv = String.join(",", ids);

对于Java7-,有一种很脏的方法(注意:只有当你不在你的list中插入包含 ", " 的字符串时,它才有效)-显然,List#toString将执行一个循环来创建idList,但它不会出现在你的代码中:

代码语言:javascript
复制
List<String> ids = new ArrayList<String>();
ids.add("1");
ids.add("2");
ids.add("3");
ids.add("4");
String idList = ids.toString();
String csv = idList.substring(1, idList.length() - 1).replace(", ", ",");
票数 159
EN

Stack Overflow用户

发布于 2012-06-01 20:59:37

代码语言:javascript
复制
import com.google.common.base.Joiner;

Joiner.on(",").join(ids);

或者,您可以使用StringUtils

代码语言:javascript
复制
   public static String join(Object[] array,
                              char separator)

   public static String join(Iterable<?> iterator,
                              char separator)

将所提供的array/iterable的元素连接到包含所提供的元素列表的单个字符串中。

http://commons.apache.org/proper/commons-lang/javadocs/api-3.3.2/org/apache/commons/lang3/StringUtils.html

票数 104
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10850753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档