问题
这个问题在这里已有答案:
- Java:将List <String>转换为String 22答案
连接String对象列表的最佳方法是什么?我想这样做:
List<String> sList = new ArrayList<String>();
// add elements
if (sList != null)
{
String listString = sList.toString();
listString = listString.subString(1, listString.length() - 1);
}
我不知何故发现这比使用StringBuilder / StringBuffer方法更整洁。
有什么想法/评论吗?
#1 热门回答(279 赞)
使用Apache Commons Lang中的StringUtils.join方法之一。
import org.apache.commons.lang3.StringUtils;
String result = StringUtils.join(list, ", ");
如果你有幸使用Java 8,那么它就更容易了......只需使用884139536
String result = String.join(", ", list);
#2 热门回答(100 赞)
使用Java 8
String str = list.stream().collect(Collectors.joining())
甚至
String str = String.join("", list);
#3 热门回答(44 赞)
你的方法依赖于Java的ArrayList#toString()实现。
虽然Java API中记录了实现并且不太可能发生变化,但它有可能实现。自己实现它更可靠(循环,StringBuilders,递归任何你更喜欢的)。
当然,这种方法看似"整洁"或更"太甜"或"金钱",但在我看来,这是一种更糟糕的方法。