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

JAVA8 的StringJoiner 使用及原理解析

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

前幾天偶然看到jdk1.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
 
    //以[開頭中間的間隔符是,以]結尾
    StringJoiner joiner2 = new StringJoiner(",", "[", "]");
    joiner2.add("1").add("2").add("3");
    System.out.println(joiner2.toString());
    //[1,2,3]
 
  }

//我們先看下他的構造方法: 

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

//前綴
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轉化為String了. 

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

相關文章

  • java自定義異常以及throw和throws關鍵字用法

    java自定義異常以及throw和throws關鍵字用法

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

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

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

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

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

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

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

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

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

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

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

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

    本篇文章通過實例給大家分析了java約瑟夫環(huán)這個經(jīng)典內容,有興趣的跟著小編一起學習下吧。
    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大排序算法

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

最新評論

库伦旗| 巨鹿县| 东海县| 西乌珠穆沁旗| 江达县| 镇坪县| 广安市| 上蔡县| 湖口县| 板桥市| 灵川县| 菏泽市| 宜宾县| 手游| 聂荣县| 岳阳市| 肥乡县| 石城县| 资中县| 巴林左旗| 鲁甸县| 勃利县| 丰原市| 林甸县| 河西区| 富顺县| 新营市| 齐河县| 太白县| 衡山县| 维西| 宜春市| 壶关县| 永嘉县| 名山县| 盘山县| 恩平市| 台东县| 河北区| 明水县| 句容市|