js--陣列的reduce()方法的使用介紹
阿新 • • 發佈:2020-12-27
StringJoiner 基本使用
字面上理解就是用來拼接字串的,一般需要分隔符進行拼接,如:
這種三段式由 "," 分隔的字串,在 Java 8 之前要使用 StringBuilder/ StringBuffer 進行拼接,如:
StringBuilder sb = new StringBuilder(); sb.append("hello"); sb.append(","); sb.append("guys"); sb.append(","); sb.append("歡迎關注公眾號Java技術棧"); String str = sb.toString();
都是相同的分隔符逗號,這樣拼接顯然過於傻瓜式,如果要拼接的字串非常多,程式碼會十分難看,寫完感覺要崩潰。
然而 Java 8 之後有了 StringJoiner,這件事件就變得更簡單,分隔符這種全部一次性交給 StringJoiner 即可。
StringJoiner 基本使用示例:
public static void main(String[] args) { StringJoiner stringJoiner = new StringJoiner(","); stringJoiner.add("hello"); stringJoiner.add("guys"); stringJoiner.add("歡迎關注公眾號Java技術棧"); System.out.println(stringJoiner.toString()); }
StringJoiner 詳細介紹
StringJoiner 的類結構圖:
成員變數:
- prefix:拼接後的字串字首
- delimiter:拼接時的字串分隔符
- suffix:拼接後的字串字尾
- value:拼接後的值
- emptyValue:空值的情況,value為 null 時返回
構造方法:
提供了兩個構造方法,一個必須帶分隔符,另一個必須帶分隔符、字首、字尾,可以看了emptyValue
預設為字首+字尾組成。
公開方法:
- setEmptyValue:設定空值
- toString:轉換成 String
- add:新增字串
- merge:從另一個 StringJoiner 合併
- length:長度(包括字首字尾)
流式 API
如上面的示例一行程式碼搞定:
public static void main(String[] args) { StringJoiner stringJoiner = new StringJoiner(",").add("hello").add("guys").add("歡迎關注公眾號Java技術棧"); System.out.println(stringJoiner.toString()); }
前後綴拼接
public static void main(String[] args) { StringJoiner stringJoiner = new StringJoiner(",", "[", "]"); stringJoiner.add("hello"); stringJoiner.add("guys"); stringJoiner.add("歡迎關注公眾號Java技術棧"); System.out.println(stringJoiner.toString()); }
輸出空白字串:
public static void main(String[] args) { StringJoiner stringJoiner = new StringJoiner(","); System.out.println(stringJoiner.toString()); }
輸出前後綴:
public static void main(String[] args) { StringJoiner stringJoiner = new StringJoiner(",", "[", "]"); }
輸出: []
輸出指定字串:
通過setEmptyValue
進行設定。
public static void main(String[] args) { StringJoiner stringJoiner = new StringJoiner(",", "[", "]"); stringJoiner.setEmptyValue("void"); System.out.println(stringJoiner.toString()); }
輸出:void
String.join()
String.join() 這是針對 StringJoiner 又封裝了一層的 API,同樣出自 Java 8,可以傳入動態引數或者迭代器。
- java.lang.String#join(java.lang.CharSequence, java.lang.CharSequence...)
- java.lang.String#join(java.lang.CharSequence, java.lang.Iterable<? extends java.lang.CharSequence>)