舊瓶裝新酒的 Java 8 StringJoiner
本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃!
終於,Java 8在java.util軟體包下發布了StringJoiner類。我認為相對於我們使用StringBuffer / StringBuilder的舊式做法來連線字串,這並非是一個迥然不同的實現。我們一起來看一看StringJoiner的用法和它的內部實現。
例如,我有兩個字串為“Smart”和“Techie”,我想連線這些字串為[Smart,Techie]。在這種情況下,我的字首為“[”,字尾為“]”,以及分隔符為“,”。 StringJoiner有如下兩個建構函式。
StringJoiner(CharSequence delimiter)
StringJoiner(CharSequence delimiter, CharSequence prefix, CharSequence suffix)
我們想要有字首和字尾,因此在例子中使用第二個建構函式。
StringJoiner sjr = new StringJoiner(",", "[", "]"); sjr.add("Smart").add("Techie"); System.out.println("The final Joined string is " + sjr);
如果我們不希望有字首和字尾,那麼就:
sjr1.add("Smart").add("Techie"); System.out.println("The final Joined string is " + sjr1);
現在,我們將看到add和toString()方法的實現。
public StringJoiner add(CharSequence newElement) { prepareBuilder().append(newElement); return this; }
prepareBuilder()實現如下。
private StringBuilder prepareBuilder() { if (value != null) { value.append(delimiter); } else { value = new StringBuilder().append(prefix); } return value; }
從上面的實現中,可以很明顯看到StringJoiner遵循老式的做法。
toString()實現如下。
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; } }
學習快樂!
譯文連結:http://www.codeceo.com/article/java-8-stringjoiner.html
英文原文:Java 8 StringJoiner – Old Wine With a New Bottle
翻譯作者:碼農網 – 小峰
[ 轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]
相關文章
- 舊瓶裝新酒,中國黑客執行遠端攻擊黑客
- 新瓶裝舊酒 盤點外觀變化的新版本手機
- 周鴻禕:如今的人工智慧只是新瓶裝舊酒,至少還需5到10年的醞釀期人工智慧
- Java 8 StringJoiner字串聯結器Java字串
- 大資料分析:找合適的瓶,釀新的酒大資料
- Java 8中字串拼接新姿勢:StringJoinerJava字串
- 舊酒換新瓶,新版M1/M2晶片Macos(Ventura)安裝古早版本Python2.7(Python2.x)晶片MacPython
- Java8的新特性Java
- 一款「老瓶裝新酒」的遊戲緣何長期暢銷海外?細節體驗差異化仍是“致勝密碼”遊戲密碼
- StringJoiner 拯救那些效能低下的字串拼裝程式碼字串
- Java 8 新特性Java
- Java 8 新特性Java
- Java 8新特性Java
- 資料解讀:一瓶進口紅酒的價格構成
- 蘋果四寸機外觀雷同iPhone5s 舊瓶裝入iPhone6蘋果iPhone
- JAVA8新特性Java
- Java8 新特性Java
- Java 8 新特性 StreamJava
- java8 之 Java官方庫的新特性Java
- Java8的八個新特性Java
- 新舊資料ICD的整合
- 資料解讀:一瓶進口紅酒的價格構成–成本控
- Java8新特性 - LambdaJava
- JAVA8新特性用法Java
- Java 8 新特性---Optional類Java
- 臺式電腦加新、舊機械硬碟分割槽教程 舊機械硬碟可以裝新電腦上嗎?硬碟
- 臺式電腦加新/舊機械硬碟+分割槽教程 舊機械硬碟可以裝新電腦上嗎?硬碟
- Java 8新特性(四):新的時間和日期APIJavaAPI
- Java8常用的新特性總結Java
- 新舊年交替的“投基”策略
- Java8 和 Java9 的主要新特性Java
- Java 8新特性(三):Optional類Java
- Java8新特性之:OptionalJava
- Java8新特性--Stream APIJavaAPI
- java8新特性stream流Java
- Java 8 新特性之方法引用Java
- Java8新特性實踐Java
- Java 8 新特性——實踐篇Java