作者:用户r0t3utxyco | 来源:互联网 | 2023-10-11 06:35
多种方式实现集合的字字符串拼接比较
代码如下:
import com.google.common.base.Joiner;
import java.util.ArrayList;
import java.util.List;
import java.util.StringJoiner;
import java.util.stream.Collectors;
public class JoinerTest {
public static void main(String[] args) {
List list = new ArrayList() {
{
add("test1");add("test2");add("test3");add("test4");add("test5");
}
};
//使用for循环+StringBuilder拼接
//这种写法可以被下面的StringJoiner代替
//优点是可以一个循环中拼接多个属性
StringBuilder sb= new StringBuilder();
for (String s: list) {
sb.append(s).append(",");
sb.append("test").append(",");
}
sb.deleteCharAt(sb.length()-1);
System.out.println("StringBuilder:"+sb.toString());
//使用StringJoiner 拼接
//如果前后要使用固定格式的字符包装,可以这样写:new StringJoiner(",","[","]");
StringJoiner stringJoiner = new StringJoiner(",");
list.forEach(s -> {
stringJoiner.add(s);
stringJoiner.add("test");
});
System.out.println("stringJoiner:"+stringJoiner.toString());
//使用谷歌Joiner拼接
String join = Joiner.on(",").join(list);
System.out.println("谷歌Joiner:"+join);
//使用String.join
String stringJoin = String.join(",", list);
System.out.println("stringJoin:"+stringJoin);
//使用stream 拼接
String collect = list.stream().map(a -> a.toString()).collect(Collectors.joining(","));
System.out.println("streamJoin:"+collect);
}
}
运行结果:
StringBuilder:test1,test,test2,test,test3,test,test4,test,test5,test
stringJoiner:test1,test,test2,test,test3,test,test4,test,test5,test
谷歌Joiner:test1,test2,test3,test4,test5
stringJoin:test1,test2,test3,test4,test5
streamJoin:test1,test2,test3,test4,test5