在JDK8中,可以采用函数式编程(使用 Collectors.joining 收集器)的方式对字符串进行更优雅的连接。
Collectors.joining 收集器 支持灵活的参数配置,可以指定字符串连接时的 分隔符,前缀 和 后缀 字符串。
代码参考如下
List<String> nickNameList = new ArrayList<>();
nickNameList.add("Alisa");
nickNameList.add("Sundy");
nickNameList.add("Amy");
nickNameList.add("Nancy");
//将nickNameList 转换成以、拼接的字符串
System.out.println(nickNameList.stream().map(String::valueOf).collect(Collectors.joining("、")));
// 将nickNameList 拼接成 [x,y,z] 形式的字符串
System.out.println(nickNameList.stream().map(String::valueOf).collect(Collectors.joining(", ", "[", "]")));
// 将nickNameList 拼接成 x | y | z 形式的字符串
System.out.println(nickNameList.stream().map(String::valueOf).collect(Collectors.joining(" | ", "", "")));
// 将nickNameList 拼接成 x -> y -> z 形式的字符串
System.out.println(nickNameList.stream().map(String::valueOf).collect(Collectors.joining(" -> ", "", "")));
运行结果:
Alisa、Sundy、Amy、Nancy
[Alisa, Sundy, Amy, Nancy]
Alisa | Sundy | Amy | Nancy
Alisa -> Sundy -> Amy -> Nancy
使用StringBuilder 拼接(不推荐)
在JAVA8之前,通常使用循环的方式来拼接字符串,例如:
String[] nickNames = {"Alisa", "Sundy", "Amy", "Nancy"};
StringBuilder builder = new StringBuilder();
builder.append("[");
for (int i = 0; i < nickNames.length; i++) {
if (builder.length() > 1) {
builder.append(",");
}
builder.append(nickNames[i]);
}
builder.append("]");
System.out.println(builder.toString());
运行结果:
[Alisa,Sundy,Amy,Nancy]
网友评论