我有以下一段代碼:
String firstString = "sth";
String secondString = "sthElse";
String stringsSpecialConcat = String.format("%s<br>%s", firstString, secondString);
boolean isFirstStringNotBlank = StringUtils.isNotBlank(firstString);
boolean isSecondStringNotBlank = StringUtils.isNotBlank(secondString);
return isFirstStringNotBlank ? (isSecondStringNotBlank ? stringsSpecialConcat : firstString) : (isSecondStringNotBlank ? secondString : "")
你能幫我通過函式式編程來簡化上面的內容嗎?我想使用類似于Stream.of(firstString, secondString).collect(joining("")).
uj5u.com熱心網友回復:
Stream.of(firstString, secondString)
.filter(StringUtils::isNotBlank)
.collect(Collectors.joining("<br>"))
Collectors.joining如果有 2 個或更多元素,則只會插入分隔符。在您的情況下,那是兩者都非空的時候。
如果兩者都為空,則結果為 ""
如果 first 為空,則結果為 "second"
如果 second 為空,則結果為 "first"
如果兩者都不為空,則結果為 "first<br>second"
uj5u.com熱心網友回復:
這……其實還不錯。你能做的最好的是
Stream.of(firstString, secondString)
.filter(StringUtils::isNotBlank)
.collect(joining("<br>"));
您可能會或可能不會覺得更簡單。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/354175.html
上一篇:處理空引數的函式式方法
下一篇:Java無法決議符號“地圖”
