美文网首页
Strman-java源码阅读2

Strman-java源码阅读2

作者: cocalrush | 来源:发表于2017-04-27 01:01 被阅读0次

    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

          本文链接:https://www.haomeiwen.com/subject/nzxgzttx.html