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,沒想到具體有啥用 🙃

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/264140.html
標籤:java
上一篇:二維碼之元宵節快樂
