参见相关。net问题
我正在寻找一种快速简单的方法来做完全相反的分裂 这样["a","b","c"]就会变成"a,b,c"
遍历数组需要添加一个条件(如果这不是最后一个元素,则添加分隔符)或使用substring删除最后一个分隔符。
我相信有一种经过认证的、有效的方法来做到这一点(Apache Commons?)
你喜欢在你的项目中怎么做?
参见相关。net问题
我正在寻找一种快速简单的方法来做完全相反的分裂 这样["a","b","c"]就会变成"a,b,c"
遍历数组需要添加一个条件(如果这不是最后一个元素,则添加分隔符)或使用substring删除最后一个分隔符。
我相信有一种经过认证的、有效的方法来做到这一点(Apache Commons?)
你喜欢在你的项目中怎么做?
当前回答
更简单的是,你可以使用数组,所以你会得到一个字符串,数组的值由","隔开
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"
其他回答
如果你在Android上,你可以使用TextUtils。加入(分隔符,令牌)
你可以用正则表达式来使用replace和replaceAll。
String[] strings = {"a", "b", "c"};
String result = Arrays.asList(strings).toString().replaceAll("(^\\[|\\]$)", "").replace(", ", ",");
因为Arrays.asList(). tostring()生成:"[a, b, c]",我们执行replaceAll来删除第一个和最后一个括号,然后(可选地)您可以更改","序列为","(您的新分隔符)。
精简版(字符数更少):
String[] strings = {"a", "b", "c"};
String result = ("" + Arrays.asList(strings)).replaceAll("(^.|.$)", "").replace(", ", "," );
正则表达式非常强大,特别是字符串方法“replaceFirst”和“replaceAll”。试一试吧。
一个快速和简单的解决方案,没有任何第三方包括。
public static String strJoin(String[] aArr, String sSep) {
StringBuilder sbStr = new StringBuilder();
for (int i = 0, il = aArr.length; i < il; i++) {
if (i > 0)
sbStr.append(sSep);
sbStr.append(aArr[i]);
}
return sbStr.toString();
}
public String join(String[] str, String separator){
String retval = "";
for (String s: str){ retval+= separator + s;}
return retval.replaceFirst(separator, "");
}
更简单的是,你可以使用数组,所以你会得到一个字符串,数组的值由","隔开
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"