Strman-java源码阅读2

Strman源码阅读2

上次说到开头使用的lambda函数

这次我们继续看第一个方法1 append方法
append方法,我们应该都很熟悉就是在后面追加字符串。一般都用过StringBuffer的apped方法吧。


public static String append(final String value, final String... appends) {
    return appendArray(value, appends);
}

public static String appendArray(final String value, final String[] appends) {
    validate(value, NULL_STRING_PREDICATE, NULL_STRING_MSG_SUPPLIER);
    if (appends == null || appends.length == 0) {
        return value;
    }
    StringJoiner joiner = new StringJoiner("");
    for (String append : appends) {
        joiner.add(append);
    }
    return value + joiner.toString();
}

这里的StringJoiner让我眼前一亮,赶紧去搜了下这个类的方法!

StringJoiner 是JAVA8 对字符串操作的一个迥然不同的方法,
StringJoiner 有两个构造方法

public StringJoiner(CharSequence delimiter) {
    this(delimiter, "", "");
}
public StringJoiner(CharSequence delimiter,                              
                 CharSequence prefix,                                 
                 CharSequence suffix) {                               
 Objects.requireNonNull(prefix, "The prefix must not be null");       
 Objects.requireNonNull(delimiter, "The delimiter must not be null"); 
 Objects.requireNonNull(suffix, "The suffix must not be null");       
 // make defensive copies of arguments                                
 this.prefix = prefix.toString();                                     
 this.delimiter = delimiter.toString();                               
 this.suffix = suffix.toString();                                     
 this.emptyValue = this.prefix + this.suffix;                         
}                                                                        

可以看到主要是依赖这个方法:
StringJoiner(CharSequence delimiter, CharSequence prefix,CharSequence suffix)

例如 :

StringJoiner sj = new StringJoiner(",","[","]");
sj.add("abc");
sj.add("def");
sj.add("ijk");

sj.toString(); //输出为 "[abc,def,ijk]" 棒不棒!!

String result = String.join(", ", "One", "Two", "Three");
result的结果会是 One, Two, Three
妈妈咪呀,我再也不用为了删除最后一个逗号而纠结了(用StringBuffer拼接的话)。
String.join() 这个方法其实就是 用StringJoiner实现的

看到这里 我明白了 这个Strman用了很多JAVA8的内容~。

你可能感兴趣的:(Strman-java源码阅读2)