需求舉例:
某個人關聯的 獎項特别多, 那麼産品需要 将個人的獎項 顯示出來,多個 以 ‘ - ’ 符号或者 ‘ 、’ 拼接。
小明 的獎項 List 已經查出來了:
List<String> awardsList=new ArrayList<>(); awardsList.add("全勤獎"); awardsList.add("無私奉獻獎"); awardsList.add("理财專家獎");
需求顯示為:
全勤獎、無私奉獻獎、理财專家獎
代碼實作1 , 正常for循環:
PS: 注意 for循環裡面的條件, 為了避免最後拼接出來的名稱 不是前面多了個符号,就是後面多個了符合,是以需要加上一些條件
List<String> awardsList=new ArrayList<>();
awardsList.add("全勤獎");
awardsList.add("無私奉獻獎");
awardsList.add("理财專家獎");
//拼接獎項名稱,以‘、’ 号拼接
StringBuffer awardsName = new StringBuffer();
if (!CollectionUtils.isEmpty(awardsList)) {
for (int i=0;i<awardsList.size();i++) {
if (i==0){
awardsName.append(awardsList.get(i));
}else {
awardsName.append("、").append(awardsList.get(i));
}
}
}
System.out.println(awardsName.toString());
代碼實作2, stream + Collectors.joining:
List<String> awardsList=new ArrayList<>();
awardsList.add("全勤獎");
awardsList.add("無私奉獻獎");
awardsList.add("理财專家獎");
//拼接獎項名稱,以‘、’ 号拼接
String awardsName = "";
if (!CollectionUtils.isEmpty(awardsList)) {
awardsName = awardsList.stream().collect(Collectors.joining("、"));
}
System.out.println(awardsName);
}
代碼實作3, string.join :
List<String> awardsList=new ArrayList<>();
awardsList.add("全勤獎");
awardsList.add("無私奉獻獎");
awardsList.add("理财專家獎");
String join = String.join("、", awardsList);
System.out.println(join);
結果示例: