StringJoiner 使用


StringJoiner 基本使用

  1. StringBuffer 拼接

StringBuilder sb = new StringBuilder();

sb.append("hello");

sb.append(",");

sb.append("world");

sb.append(",");

sb.append("Java程序員");

String str = sb.toString(); //輸出: hello,world,Java程序員

System.out.println("str :" + str);

可以看到這里需要拼接多次"," 。

2. StringJoiner 拼接

StringJoiner sj = new StringJoiner(",");

sj.add("hello");

sj.add("world");

sj.add("Java程序員");

String str = sj.toString(); //輸出: hello,world,Java程序員

System.out.println("str :" + str);

可以看到這里不需要拼接多次"," 。

StringJoiner 介紹

  1. 類結構圖

  1. 成員變量

private final String prefix; //拼接后的字符串前綴

private final String delimiter; //拼接時的字符串分隔符

private final String suffix; //拼接后的字符串后綴

private StringBuilder value; /* StringBuilder存儲,拼接后的值。 */

private String emptyValue; //空值的情況,value為 null 時返回

  1. 構造方法

兩個構造方法,一個必須帶分隔符,

另一個必須帶分隔符、前綴、后綴,其中 emptyValue 默認為前綴+后綴組成。

  1. 公開方法

  • setEmptyValue:設置空值
  • toString:轉換成 String
  • add:添加字符串
  • merge:從另一個 StringJoiner 合並
  • length:長度(包括前綴后綴)
  1. 流式 API

add 方法源碼

用 StringBuilder 進行封裝的,首次創建會先拼接前綴,后續先添加分隔符,再添加字符串。

使用Demo

StringJoiner sj1 = new StringJoiner(",").add("hello").add("world").add("Java程序員");

System.out.println(sj1);

6.前后綴拼接

StringJoiner sj2 = new StringJoiner(",", "[", "]");

sj2.add("hello");

sj2.add("world");

sj2.add("Java程序員");

String str2 = sj2.toString();

7.空值處理

中間拼接null

// 如果add null,則會輸出null,所以,如果add前需要判空

StringJoiner sj1 = new StringJoiner(",")

.add("hello")

.add(null)

.add("Java程序員");

System.out.println(sj1); //輸出: hello,null,Java程序員

輸出指定字符串

// 如果沒有拼接的value,會輸出emptyValue的值; 如果value有值 是不會輸出emptyValue的值

StringJoiner sj0 = new StringJoiner(",", "[", "]");

sj0.setEmptyValue("沒有值,設置默認空值!!!");

System.out.println(sj0.toString()); //輸出: 沒有值,設置默認空值!!!

 

StringJoiner sj1 = new StringJoiner(",")

.add("hello")

.add("Java程序員");

sj1.setEmptyValue("沒有值,設置默認空值!!!");

System.out.println(sj1.toString()); //hello,Java程序員

String.join()

源碼介紹

String針對 StringJoiner 又封裝了一層的 API,可以傳入動態參數或者迭代器。

使用示例

String sj1 = String.join(",", "hello", "Java程序員");

System.out.println(sj1); //輸出: hello,Java程序員

 

List<String> strings = new LinkedList<>();

strings.add("Java");

strings.add("is");

strings.add("cool");

String message = String.join(" ", strings);

System.out.println(message); //輸出: Java is cool

總結

開發人員可以根據需要選擇合適的方式拼接。

 

參考: https://mp.weixin.qq.com/s/5Ehe_V_1sTy4QV7M-y-P0A


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM