可能一般我们需要将数组里的元素转为字符串或者将某个集合里的元素提取出来或者转换需要用到这种拼接,在循环遍历中每个元素的时候在末尾加入特定的分隔符,
这里我们举例这个集合为自己创建的数组。
之前我们可能这么写,拼接完成在最后面多出多余符号:
String strTableData = "";
for (int i = 0; i < 5; i++){
strTableData += i + ",";
}
z这样打印出来的结果可能是这样的:
0,1,2,3,4,
会发现在循环遍历的时候后边多出了一个分隔符,我们这时候可能在遍历后边取截取字符串:
if (StringUtils.isNotBlank(str))
strTableData = strTableData.substring(0, strTableData.length() - 1);
从而最终得到我们想要的结果
0,1,2,3,4
s虽然这种方法一点毛病都没有,但是有没有比这个代码更少,执行起来更快的方法了?
1.在循环里边加判断
String strTableData = "";
for (int i = 0; i < 5; i++){
if (StringUtils.isNotBlank(strTableData))
strTableData += ",";
strTableData += i;
}
2.根据循环次数
3.jdk8 StringJoiner
List strList = Arrays.asList("a", "b", "c");
StringJoiner subStr = new StringJoiner(",");
for (String strData : strList){
subStr.add(strData);
}
System.out.println(subStr.toString());
3.springBuilder或springBuffer