最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JAVA8 的StringJoiner 使用及原理解析

 更新時間:2021年01月06日 10:46:26   作者:長河  
這篇文章主要介紹了JAVA8 的StringJoiner 使用及原理解析,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

前幾天偶然看到j(luò)dk1.8突然新增了一個類StringJoiner , 就研究了一下是怎么使用的, 以及看了下它的源碼.

使用如下:

public static void main(String[] args) {
 
    //間隔符是,
    StringJoiner joiner1 = new StringJoiner(",");
    joiner1.add("1").add("2").add("3");
    System.out.println(joiner1.toString());
    //1,2,3
 
    //以[開頭中間的間隔符是,以]結(jié)尾
    StringJoiner joiner2 = new StringJoiner(",", "[", "]");
    joiner2.add("1").add("2").add("3");
    System.out.println(joiner2.toString());
    //[1,2,3]
 
  }

//我們先看下他的構(gòu)造方法: 

如果只有中間的一個分割字符, 則其左邊和右邊的字符都是空,

//前綴
private final String prefix;
//后綴
private final String delimiter;
//中間分隔符
private final String suffix;
 
 
public StringJoiner(CharSequence delimiter) {
    this(delimiter, "", "");
  }
public StringJoiner add(CharSequence newElement) {
    prepareBuilder().append(newElement);
    return this;
  }
 
private StringBuilder prepareBuilder() {
    if (value != null) {
      value.append(delimiter);
    } else {
      value = new StringBuilder().append(prefix);
    }
    return value;
  }

add方法, 首先是把值拼接一下前綴,再拼接一下中間的分隔符,再返回, 再繼續(xù)拼接來的字符串.

@Override
  public String toString() {
    if (value == null) {
      return emptyValue;
    } else {
      if (suffix.equals("")) {
        return value.toString();
      } else {
        int initialLength = value.length();
        String result = value.append(suffix).toString();
        // reset value to pre-append initialLength
        value.setLength(initialLength);
        return result;
      }
    }
  }

重寫的toString方法,就是把整個StringBuilder轉(zhuǎn)化為String了. 

到此這篇關(guān)于JAVA8 的StringJoiner 使用及原理解析的文章就介紹到這了,更多相關(guān)JAVA8 的StringJoiner 使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java自定義異常以及throw和throws關(guān)鍵字用法

    java自定義異常以及throw和throws關(guān)鍵字用法

    這篇文章主要介紹了java自定義異常以及throw和throws關(guān)鍵字用法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • 詳解@Autowired(required=false)注入注意的問題

    詳解@Autowired(required=false)注入注意的問題

    這篇文章主要介紹了@Autowired(required=false)注入注意的問題,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • java正則表達式用法大全(深度好文)

    java正則表達式用法大全(深度好文)

    這篇文章主要給大家介紹了關(guān)于java正則表達式用法大全的相關(guān)資料,正則表達式在處理字符串時非常有用,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-10-10
  • MyBatis復(fù)雜Sql查詢實現(xiàn)示例介紹

    MyBatis復(fù)雜Sql查詢實現(xiàn)示例介紹

    在利用mybatis做查詢的時候,一般返回結(jié)果用resulttype,這種情況必須是查詢的結(jié)果在對應(yīng) 的pojo類中有對應(yīng)的,一般都是單表查詢,但是對于一些復(fù)雜的情況,比如需要用到多表查詢的時候,resultType不再適用,此時一般用resultMap來表示返回的結(jié)果
    2022-12-12
  • Maven打包跳過測試的實現(xiàn)方法

    Maven打包跳過測試的實現(xiàn)方法

    使用Maven打包的時候,可能會因為單元測試打包失敗,這時候就需要跳過單元測試。本文就介紹了Maven打包跳過測試的實現(xiàn)方法,感興趣的可以了解一下
    2021-06-06
  • 淺談一下Java中的幾種JVM級別的鎖

    淺談一下Java中的幾種JVM級別的鎖

    這篇文章主要介紹了淺談一下Java中的幾種JVM級別的鎖,當(dāng)存在安全漏洞時,也必須有相應(yīng)的防護措施。順應(yīng)這種趨勢,虛擬"鎖"被發(fā)明出來,以解決線程的安全問題。在這篇文章中,我們將研究多年來出現(xiàn)的?Java?中幾種典型的?JVM?級鎖,需要的朋友可以參考下
    2023-08-08
  • 代碼詳解Java猴子選王問題(約瑟夫環(huán))

    代碼詳解Java猴子選王問題(約瑟夫環(huán))

    本篇文章通過實例給大家分析了java約瑟夫環(huán)這個經(jīng)典內(nèi)容,有興趣的跟著小編一起學(xué)習(xí)下吧。
    2018-02-02
  • SpringCloud_Sleuth分布式鏈路請求跟蹤的示例代碼

    SpringCloud_Sleuth分布式鏈路請求跟蹤的示例代碼

    Spring Cloud Sleuth是一款針對Spring Cloud的分布式跟蹤工具,本文通過實例代碼介紹了SpringCloud_Sleuth分布式鏈路請求跟蹤,感興趣的朋友跟隨小編一起看看吧
    2023-02-02
  • Springboot中集成Swagger2框架的方法

    Springboot中集成Swagger2框架的方法

    這篇文章主要介紹了Springboot中集成Swagger2框架的方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-12-12
  • 圖解程序員必須掌握的Java常用8大排序算法

    圖解程序員必須掌握的Java常用8大排序算法

    本文以圖片與文字結(jié)合的方式講解了程序員必須掌握的Java常用8大排序算法:插入排序、冒泡排序、選擇排序、希爾排序 、快速排序、歸并排序、堆排序和LST基數(shù)排序,需要的朋友可以參考下
    2015-07-07

最新評論

密云县| 枣阳市| 姚安县| 永寿县| 铁岭县| 瑞丽市| 平舆县| 海宁市| 英超| 和平县| 辉南县| 申扎县| 霍邱县| 区。| 新乡市| 剑阁县| 芦溪县| 乐昌市| 皮山县| 兴和县| 辽中县| 肇源县| 杭州市| 龙里县| 临夏县| 大宁县| 安新县| 米泉市| 承德县| 洛扎县| 雷波县| 高唐县| 巴林左旗| 调兵山市| 历史| 平乐县| 来安县| 治多县| 始兴县| 微博| 张家界市|