Java8優雅的字符串拼接工具類StringJoiner實例代碼
StringJoiner是Java8新出的用於處理字符串拼接的工具類,可以讓你的代碼看起來更優雅,不拉跨。
假設現在遍歷一個字符串集合,需求是每個元素按照 “.” 分開。
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 有點醜,優雅點!
StringBuilder builder = new StringBuilder(); list.forEach(str -> builder.append(str).append(".")); System.err.println(builder.toString().substring(0, builder.length() - 1));
上面的都不太方便,還要處理下結果,怪麻煩的,那能不能更優雅呢?能!上StringJoiner!
// 聲明StringJoiner, 每個元素通過 "." 分割 StringJoiner joiner = new StringJoiner("."); list.forEach(joiner::add); System.err.println(joiner.toString());
達到瞭一樣的效果
那還有啥其他作用不?
// 每個元素通過 "." 分割,並且用 "[" 和 "]" 包住前後 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,看方法名字是設置個空值?試一下,發現並沒啥效果,點進去瞅瞅。
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,沒想到具體有啥用 🙃
總結
到此這篇關於Java8優雅的字符串拼接工具類StringJoiner的文章就介紹到這瞭,更多相關Java8字符串拼接StringJoiner內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- java實戰小技巧之優雅的實現字符串拼接
- Java實用工具之StringJoiner詳解
- Java常用類之字符串相關類使用詳解
- Java代碼中4種字符串拼接方式分析
- Java效率提升神器之Guava-Joiner