0%

使用StringJoiner拼接字符串

简述

在拼接字符串的过程中有时需要拼接分隔符, 如果你只会用 + 或者 StringBuilder/ StringBuffer 拼接字符串?那你就 OUT 了,建议使用 Java 8 中的这款字符串拼接神器:StringJoiner,你值得拥有

代码片断

原来的字符串拼接代码

1
2
3
4
5
6
7
8
String logStr="\n---------------------------------------------------------------------" +
"\n请求ip:" + clientIp + ":" + clientPort +
"\n请求url:"+clientUrl+
"\n请求方式:"+requestMethod+
"\n执行时长:" + stopwatch.elapsed(TimeUnit.MILLISECONDS) + "ms" +
"\n入参:" + (args == null ? "[]" : Arrays.toString(args)) +
"\n出参:" + (result == null ? "[]" : objectMapper.writeValueAsString(result))+
"\n----------------------------------------------------------------------";

使用 StringJoiner 之后

1
2
3
4
5
6
7
8
9
10
11
StringJoiner stringJoiner = new StringJoiner("\n");
stringJoiner.add("");
stringJoiner.add("---------------------------------------------------------------------");
stringJoiner.add("请求ip:" + clientIp + ":" + clientPort);
stringJoiner.add("请求url:"+clientUrl);
stringJoiner.add("请求方式:"+requestMethod);
stringJoiner.add("执行时长:"+stopwatch.elapsed(TimeUnit.MILLISECONDS) + "ms");
stringJoiner.add("入参:" + (args == null ? "[]" : Arrays.toString(args)));
stringJoiner.add("出参:" + (result == null ? "[]" : objectMapper.writeValueAsString(result)));
stringJoiner.add("----------------------------------------------------------------------");
String logStr=stringJoiner.toString();

不需要自己处理分隔符了,是不是轻闲了不少?

进一步研究源码就会发现,其实际上是对 StringBuilder 做了进一步的封装

stringJoiner-01


微信端的朋友也可关注我的公众号

qrcode-12cm