参见相关。net问题

我正在寻找一种快速简单的方法来做完全相反的分裂 这样["a","b","c"]就会变成"a,b,c"

遍历数组需要添加一个条件(如果这不是最后一个元素,则添加分隔符)或使用substring删除最后一个分隔符。

我相信有一种经过认证的、有效的方法来做到这一点(Apache Commons?)

你喜欢在你的项目中怎么做?


当前回答

public String join(String[] str, String separator){
    String retval = "";
    for (String s: str){ retval+= separator + s;}
    return retval.replaceFirst(separator, "");
}

其他回答

对于这个特殊的问题,我更喜欢Guava而不是Apache StringUtils:

Joiner.on(separator).join(array)

与StringUtils相比,Joiner API具有流畅的设计,并且更加灵活,例如,null元素可以被跳过或被占位符替换。此外,Joiner还有一个特性,用于在键和值之间使用分隔符连接映射。

更简单的是,你可以使用数组,所以你会得到一个字符串,数组的值由","隔开

String concat = Arrays.toString(myArray);

所以你会得到这样的结果:concat = "[a,b,c]"

更新

然后,您可以使用Jeff建议的子字符串来消除括号

concat = concat.substring(1, concat.length() -1);

所以你得到concat = "a,b,c"

如果你想使用Kotlin:

 val concat = myArray.joinToString(separator = ",") //"a,b,c"

它在StringUtils中:

http://www.java2s.com/Code/JavaAPI/org.apache.commons.lang/StringUtilsjoinObjectarrayStringseparator.htm

如果你在Android上,你可以使用TextUtils。加入(分隔符,令牌)

“我相信有一种经过认证的、有效的方法来做到这一点(Apache Commons?)”

是的,很明显

StringUtils.join(array, separator)

http://www.java2s.com/Code/JavaAPI/org.apache.commons.lang/StringUtilsjoinObjectarrayStringseparator.htm