Java8優(yōu)雅的字符串拼接工具類StringJoiner實例代碼
StringJoiner是Java8新出的用于處理字符串拼接的工具類,可以讓你的代碼看起來更優(yōu)雅,不拉跨。
假設(shè)現(xiàn)在遍歷一個字符串集合,需求是每個元素按照 “.” 分開。
String a = "w", b = "d", c = "n", d = "m", e = "d"; List<String> list = new ArrayList<>(); list.add(a); list.add(b); list.add(c); list.add(d); list.add(e);
最原始的做法,拼接就完了,eazy。
String result = ""; for (String str : list) { result += str + "."; } // 最后在處理掉最后一個 “.” 齊活兒,收工 System.err.println(result.substring(0, result.length() - 1));
emm 有點丑,優(yōu)雅點!
StringBuilder builder = new StringBuilder(); list.forEach(str -> builder.append(str).append(".")); System.err.println(builder.toString().substring(0, builder.length() - 1));
上面的都不太方便,還要處理下結(jié)果,怪麻煩的,那能不能更優(yōu)雅呢?能!上StringJoiner!
// 聲明StringJoiner, 每個元素通過 "." 分割 StringJoiner joiner = new StringJoiner("."); list.forEach(joiner::add); System.err.println(joiner.toString());
達(dá)到了一樣的效果
那還有啥其他作用不?
// 每個元素通過 "." 分割,并且用 "[" 和 "]" 包住前后 StringJoiner joiner2 = new StringJoiner(".", "[", "]"); list.forEach(joiner2::add); System.err.println(joiner2.toString());
再比如
// 每個元素通過 "." 分割,并且用 "[" 和 "]" 包住前后 StringJoiner joiner2 = new StringJoiner(".", "[", "]"); list.forEach(joiner2::add); // 將joner和joner2的元素合并,并且每個元素通過 "." 分割,并且用 "[" 和 "]" 包住前后 joiner2.merge(joiner); System.err.println(joiner2.toString());
這還有個setEmptyValue,看方法名字是設(shè)置個空值?試一下,發(fā)現(xiàn)并沒啥效果,點進(jìn)去瞅瞅。
StringJoiner joiner = new StringJoiner("."); list.forEach(joiner::add); System.err.println(joiner.toString()); joiner.setEmptyValue("abc"); System.err.println(joiner.toString());
奧,意思是如果啥都沒有的時候就在toString和length返回這個emptyValue的值/長度唄,emm,沒想到具體有啥用 🙃
總結(jié)
到此這篇關(guān)于Java8優(yōu)雅的字符串拼接工具類StringJoiner的文章就介紹到這了,更多相關(guān)Java8字符串拼接StringJoiner內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java response響應(yīng)體和文件下載實現(xiàn)原理
這篇文章主要介紹了Java response響應(yīng)體和文件下載實現(xiàn)原理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-05-05Spring boot中使用ElasticSearch的方法詳解
這篇文章主要給大家介紹了關(guān)于Spring boot中使用ElasticSearch的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01Java 3種方法實現(xiàn)進(jìn)制轉(zhuǎn)換
這篇文章主要介紹了Java 3種方法實現(xiàn)進(jìn)制轉(zhuǎn)換,幫助大家利用Java處理數(shù)據(jù),感興趣的朋友可以了解下2020-09-09Spring Cloud Gateway打造可擴(kuò)展的微服務(wù)網(wǎng)關(guān)
微服務(wù)網(wǎng)關(guān)是一個位于客戶端和后端微服務(wù)之間的服務(wù)器,用于處理所有與客戶端的通信,Spring Cloud Gateway都是一個值得考慮的選擇,它將幫助您更好地管理和保護(hù)您的微服務(wù),感興趣的朋友一起看看吧2023-11-11Springboot+Thymeleaf+Jpa實現(xiàn)登錄功能(附源碼)
最近有學(xué)習(xí)到關(guān)于Springboot+Thymeleaf+Jpa的綜合運用知識,因此想寫一個簡單的登錄界面來嘗試一下,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05SpringBoot使用spring.config.import多種方式導(dǎo)入配置文件
本文主要介紹了SpringBoot使用spring.config.import多種方式導(dǎo)入配置文件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05