在做CCF CSP、PAT等OJ时,经常会遇到这样的问题:输出数组或者集合中的所有元素,元素之间使用空格分隔,但是末尾不能有空格。
传统的写法如下:
1 | public class Main { |
在JDK 8中,String类新增了一个静态方法join,可以按照给定的分隔符拼接多个字符串。
1 | public class Main { |
String::join内部使用了java.util.StringJoiner类,源码如下:
1 | public static String join(CharSequence delimiter, CharSequence... elements) { |
1.new StringJoiner(delimiter)
的源码如下:
1 | public StringJoiner(CharSequence delimiter) { |
2.this(delimiter, "", "")
的源码如下:
1 | public StringJoiner(CharSequence delimiter, |
3.joiner.add(cs)
的源码如下:
1 | public StringJoiner add(CharSequence newElement) { |
4.prepareBuilder方法的源码如下:
1 | private StringBuilder prepareBuilder() { |
5.声明value变量的源码如下:
1 | // value中的内容为:prefix + element + delimiter + ... |
6.joiner.toString()
的源码如下:
1 | public String toString() { |