StringJoiner

要高效拼接字符串,应该使用StringBuilder

很多时候,我们拼接的字符串像这样:

StringJoiner - 图1

类似用分隔符拼接数组的需求很常见,所以Java标准库还提供了一个StringJoiner来干这个事:

StringJoiner - 图2

慢着!用StringJoiner的结果少了前面的"Hello "和结尾的"!"!遇到这种情况,需要给StringJoiner指定“开头”和“结尾”:

StringJoiner - 图3

那么StringJoiner内部是如何拼接字符串的呢?如果查看源码,可以发现,StringJoiner内部实际上就是使用了StringBuilder,所以拼接效率和StringBuilder几乎是一模一样的。

String.join()

String还提供了一个静态方法join(),这个方法在内部使用了StringJoiner来拼接字符串,在不需要指定“开头”和“结尾”的时候,用String.join()更方便:

  1. String[] names = {"Bob", "Alice", "Grace"};
  2. var s = String.join(", ", names);

练习

请使用StringJoiner构造一个SELECT语句:

StringJoiner - 图4

下载练习:StringJoiner练习 (推荐使用IDE练习插件快速下载)

小结

用指定分隔符拼接字符串数组时,使用StringJoiner或者String.join()更方便;

StringJoiner拼接字符串时,还可以额外附加一个“开头”和“结尾”。

读后有收获可以支付宝请作者喝咖啡,读后有疑问请加微信群讨论

StringJoiner - 图5StringJoiner - 图6