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