参见相关。net问题
我正在寻找一种快速简单的方法来做完全相反的分裂 这样["a","b","c"]就会变成"a,b,c"
遍历数组需要添加一个条件(如果这不是最后一个元素,则添加分隔符)或使用substring删除最后一个分隔符。
我相信有一种经过认证的、有效的方法来做到这一点(Apache Commons?)
你喜欢在你的项目中怎么做?
参见相关。net问题
我正在寻找一种快速简单的方法来做完全相反的分裂 这样["a","b","c"]就会变成"a,b,c"
遍历数组需要添加一个条件(如果这不是最后一个元素,则添加分隔符)或使用substring删除最后一个分隔符。
我相信有一种经过认证的、有效的方法来做到这一点(Apache Commons?)
你喜欢在你的项目中怎么做?
当前回答
在Java 1.8中有一个新的StringJoiner类——所以不需要Guava或Apache Commons:
String str = new StringJoiner(",").add("a").add("b").add("c").toString();
或者直接使用新流api的集合:
String str = Arrays.asList("a", "b", "c").stream().collect(Collectors.joining(","));
其他回答
在Java 1.8中有一个新的StringJoiner类——所以不需要Guava或Apache Commons:
String str = new StringJoiner(",").add("a").add("b").add("c").toString();
或者直接使用新流api的集合:
String str = Arrays.asList("a", "b", "c").stream().collect(Collectors.joining(","));
如果你在Android上,你可以使用TextUtils。加入(分隔符,令牌)
使用Java 8,你可以用一种非常干净的方式做到这一点:
String.join(delimiter, elements);
这有三种方式:
1)直接指定要素
String joined1 = String.join(",", "a", "b", "c");
2)使用数组
String[] array = new String[] { "a", "b", "c" };
String joined2 = String.join(",", array);
3)使用可迭代对象
List<String> list = Arrays.asList(array);
String joined3 = String.join(",", list);
它在StringUtils中:
http://www.java2s.com/Code/JavaAPI/org.apache.commons.lang/StringUtilsjoinObjectarrayStringseparator.htm
这个选项是快速和清晰的:
public static String join(String separator, String... values) {
StringBuilder sb = new StringBuilder(128);
int end = 0;
for (String s : values) {
if (s != null) {
sb.append(s);
end = sb.length();
sb.append(separator);
}
}
return sb.substring(0, end);
}