欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中String.join()高效字符串拼接的實現(xiàn)

 更新時間:2025年05月29日 10:23:50   作者:AA-代碼批發(fā)V哥  
本文主要介紹了Java中String.join()高效字符串拼接的實現(xiàn),包括基礎拼接、StreamAPI結合、非字符串類型處理及與傳統(tǒng)方式對比,具有一定的參考價值,感興趣的可以了解一下

前言

String.join() 是 Java 8 引入的靜態(tài)方法,用于將多個字符串通過指定分隔符合并成一個字符串。它簡化了傳統(tǒng)的字符串拼接邏輯,尤其適合處理集合或數(shù)組中的元素拼接。

一、基礎用法:拼接數(shù)組或集合元素(僅分隔符)

語法

String.join(CharSequence delimiter, CharSequence... elements)
  • delimiter:分隔符(如 、- 等)。

  • elements:待拼接的字符串數(shù)組或可變參數(shù)。

示例 1:拼接字符串數(shù)組

String[] fruits = {"Apple", "Banana", "Cherry"};
String result = String.join(", ", fruits);
System.out.println(result); // 輸出:Apple, Banana, Cherry

示例 2:拼接集合元素

List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
String result = String.join(" -> ", names);
System.out.println(result); // 輸出:Alice -> Bob -> Charlie

注意事項

  • 若元素為 null,會拋出 NullPointerException。

  • 若元素為空字符串(""),會保留空值(不同于過濾操作):

String[] arr = {"A", "", "B"};
String result = String.join("-", arr); // 輸出:A--B

二、進階用法:結合 Stream API 處理復雜場景

通過 Stream 的 collect(Collectors.joining()) 可添加前綴后綴,語法如下:

.collect(Collectors.joining(delimiter, prefix, suffix))
  • delimiter:元素間的分隔符(必填)。

  • prefix:結果前綴(可選)。

  • suffix:結果后綴(可選)。

示例 1:添加前綴和后綴(如數(shù)組格式)

List<String> list = Arrays.asList("One", "Two", "Three");
String result = list.stream()
    .collect(Collectors.joining(", ", "[", "]"));
System.out.println(result); // 輸出:[One, Two, Three]

示例 2:處理空集合的默認值

List<String> emptyList = Collections.emptyList();
String result = emptyList.stream()
    .collect(Collectors.joining(", ", "Items: [", "]"));
System.out.println(result); // 輸出:Items: [](空集合時保留前綴和后綴)

三、特殊場景:處理非字符串類型

若元素為非字符串(如數(shù)字、對象),需先轉(zhuǎn)為字符串再拼接:

Integer[] numbers = {1, 2, 3, 4, 5};
String result = Arrays.stream(numbers)
    .map(String::valueOf) // 轉(zhuǎn)換為字符串
    .collect(Collectors.joining(" | "));
System.out.println(result); // 輸出:1 | 2 | 3 | 4 | 5

四、對比傳統(tǒng)拼接方式

傳統(tǒng)方式(StringBuilder)

StringBuilder sb = new StringBuilder();
for (String fruit : fruits) {
    if (sb.length() &gt; 0) {
        sb.append(", "); // 手動添加分隔符
    }
    sb.append(fruit);
}
String result = sb.toString(); // 輸出:Apple, Banana, Cherry

String.join() 優(yōu)勢

  • 代碼更簡潔,無需手動處理分隔符邏輯。

  • 性能與 StringBuilder 相當,適合大多數(shù)場景。

五、注意事項

  • 空元素處理
  • 元素為 null 會報錯,需提前過濾:
List<String> list = Arrays.asList("A", null, "B");
String result = list.stream()
    .filter(Objects::nonNull) // 過濾null
    .collect(Collectors.joining(", ")); // 輸出:A, B
  • 分隔符為空
String result = String.join("", "Hello", "World"); // 輸出:HelloWorld
  • 與 StringJoiner 的區(qū)別
  • String.join() 是靜態(tài)方法,底層依賴 StringJoiner 實現(xiàn)。

  • StringJoiner 更靈活,可中途修改分隔符、前綴、后綴(如 setDelimiter())。

總結:常用場景

需求描述代碼示例輸出結果
簡單拼接(逗號分隔)String.join(", ", "A", "B", "C")A, B, C
帶前綴后綴Collectors.joining(", ", "List: [", "]")List: [A, B, C]
處理數(shù)字集合Arrays.stream(numbers).mapToObj(String::valueOf).collect(Collectors.joining("-"))1-2-3-4-5
空集合處理Collectors.joining(", ", "Empty: [", "]")(空集合)Empty: []

合理使用 String.join() 可以大幅簡化字符串拼接邏輯,尤其在處理集合或需要統(tǒng)一分隔符的場景中效率顯著。

到此這篇關于Java中String.join()高效字符串拼接的實現(xiàn)的文章就介紹到這了,更多相關Java String.join()字符串拼接內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關文章

  • 搭建JavaWeb服務器步驟詳解

    搭建JavaWeb服務器步驟詳解

    本篇文章主要給大家詳細分享了搭建JavaWeb服務器的詳細步驟以及用到的代碼,對此有需要的朋友可以跟著學習下。
    2018-02-02
  • Mybatis-Plus的條件構造器QueryWrapper & UpdateWrapper示例詳解

    Mybatis-Plus的條件構造器QueryWrapper & UpdateWrapper示例詳解

    Mybatis-Plus的條件構造器QueryWrapper和UpdateWrapper為開發(fā)者提供了強大、靈活的條件構建工具,能夠大大簡化數(shù)據(jù)庫操作的代碼,通過本文的介紹,讀者可以更加深入地理解這兩個條件構造器的使用方法,并在實際項目中靈活應用,感興趣的朋友跟隨小編一起看看吧
    2024-01-01
  • java后臺如何利用Pattern提取所需字符詳解

    java后臺如何利用Pattern提取所需字符詳解

    這篇文章主要給大家介紹了關于java后臺如何利用Pattern提取所需字符的相關資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-01-01
  • Java經(jīng)典面試題匯總:Spring

    Java經(jīng)典面試題匯總:Spring

    本篇總結的是Spring框架相關的面試題,后續(xù)會持續(xù)更新,希望我的分享可以幫助到正在備戰(zhàn)面試的實習生或者已經(jīng)工作的同行,如果發(fā)現(xiàn)錯誤還望大家多多包涵,不吝賜教,謝謝
    2021-07-07
  • Spring中基于Java的配置@Configuration和@Bean用法詳解

    Spring中基于Java的配置@Configuration和@Bean用法詳解

    這篇文章主要介紹了Spring中基于Java的配置@Configuration和@Bean用法詳解,Spring中為了減少xml中配置,可以聲明一個配置類(例如SpringConfig)來對bean進行配置。,需要的朋友可以參考下
    2019-06-06
  • Spring-cloud-eureka使用feign調(diào)用服務接口

    Spring-cloud-eureka使用feign調(diào)用服務接口

    這篇文章主要為大家詳細介紹了Spring-cloud-eureka使用feign調(diào)用服務接口,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • 關于Java中try finally return語句的執(zhí)行順序淺析

    關于Java中try finally return語句的執(zhí)行順序淺析

    這篇文章主要介紹了關于Java中try finally return語句的執(zhí)行順序淺析,需要的朋友可以參考下
    2017-08-08
  • Spring?Cloud?Eureka?搭建?&?集群方式

    Spring?Cloud?Eureka?搭建?&?集群方式

    這篇文章主要介紹了Spring?Cloud?Eureka?搭建?&?集群方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • JavaScript中的closest方法示例詳解

    JavaScript中的closest方法示例詳解

    這篇文章主要介紹了JavaScript中closest方法的相關資料,closest()是JavaScript中的一個非常實用的?DOM?方法,用于查找與當前元素匹配的最近的祖先元素,它支持?CSS?選擇器,可以應用于事件委托、動態(tài)內(nèi)容處理等場景,需要的朋友可以參考下
    2025-02-02
  • 解決Java 部署Tomcat時使用jni和jna調(diào)用DLL文件的問題

    解決Java 部署Tomcat時使用jni和jna調(diào)用DLL文件的問題

    這篇文章主要介紹了解決Java 部署Tomcat時使用jni和jna調(diào)用DLL文件的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11

最新評論