先模拟一个List集合:
public class test {
public static void main(String[] args) {
List<String> list=new ArrayList<>();
list.add("11");
list.add("22");
list.add("");
list.add("33");
System.out.println(list);
}
}
输出情况:
现在需要将它转换成11,22,33的形式,这就要去除空字符串,通过removeIf去除null和空:
方法一:
public class test {
public static void main(String[] args) {
List<String> list=new ArrayList<>();
list.add("11");
list.add("22");
list.add("");
list.add("33");
System.out.println(list);
list.removeIf(Objects::isNull);
list.removeIf(String::isEmpty);
String str = StringUtils.join(list.toArray(), ",");
System.out.println(str);
}
}
方法二:
public class test {
public static void main(String[] args) {
List<String> list=new ArrayList<>();
list.add("11");
list.add("22");
list.add("");
list.add("33");
System.out.println(list);
list.removeIf(Objects::isNull);
list.removeIf(String::isEmpty);
String join = String.join(",", list);
System.out.println(join);
}
}
方法三:构建StringBuilder,通过拼接字符串的方式,最后结果是11,22,33, 需要把最后一个,去掉:
public class test {
public static void main(String[] args) {
List<String> list=new ArrayList<>();
list.add("11");
list.add("22");
list.add("");
list.add("33");
System.out.println(list);
StringBuilder stringBuilder=new StringBuilder();
for (String id:list) {
if (StrUtil.isNotEmpty(id)){
stringBuilder.append(id+",");
}
}
stringBuilder.deleteCharAt(stringBuilder.length()-1);
System.out.println(stringBuilder);
}
}
三种方式运行结果: