将List转变为逗号分隔的字符串_一颗浑身披带雪花的松树---[雪松]-CSDN博客

1、使用场景

我们经常在开发过程之中,会遇到需要把返回的Id list转换为一个使用逗号(,)分隔的字符串; 然后提供给后端执行SQL语句的In查询,或者给前端进行展示等等。

2、实现方法

在Java 8中将集合List转变为用逗号分隔的String是非常简单的。
使用String.join()函数,给函数传递一个分隔符合一个迭代器,一个StringJoiner对象会帮助我们完成所有的事情。

List<String> letters= Arrays.asList("A", "B", "C", "D");
String lettersCommaSeparated = String.join(",", letters);
System.out.println(lettersCommaSeparated );

我们采用流的方式来写,仍然能够得到同样的结果

String lettersCommaSeparated = letters.stream().collect(Collectors.joining(","));
System.out.println(lettersCommaSeparated );

Java 7 实现

private static final String SEPARATOR = ",";
public static void main(String[] args) {
  List<String> letters = Arrays.asList("A","B","C","D");
  StringBuilder strBuilder = new StringBuilder();
  for(String letter : letters){
    strBuilder.append(letter);
    strBuilder.append(SEPARATOR);
  }
  String strLetter = strBuilder.toString();
  System.out.println(strLetter);
  //OUTPUT: A,B,C,D,
  //Remove last comma
  strLetter = strLetter.substring(0, strLetter.length() - SEPARATOR.length());
  System.out.println(strLetter);
  //OUTPUT: A,B,C,D
}

3、完整实战代码

public class StringList {
    private static List<String> letters= Arrays.asList("A", "B", "C", "D");
    private static final String SEPARATOR = ",";
    /**
     * 使用Java8进行返回
     */
    public static void Java8ListToString() {
        
        String lettersCommaSeparated = String.join(",", letters);
        System.out.println("Java8ListToString: \n"+lettersCommaSeparated );
        
    }
    
    public static void Java8StreamListToString() {
        String lettersCommaSeparated = letters.stream().collect(Collectors.joining(","));
        System.out.println("Java8StreamListToString: \n"+lettersCommaSeparated );
    }
    
    public static void Java7ListToString() {
         List<String> letters = Arrays.asList("A","B","C","D");
          StringBuilder strBuilder = new StringBuilder();
          for(String letter : letters){
            strBuilder.append(letter);
            strBuilder.append(SEPARATOR);
          }
          String strLetter = strBuilder.toString();
          System.out.println(strLetter);
          //OUTPUT: A,B,C,D,
          //Remove last comma
          strLetter = strLetter.substring(0, strLetter.length() - SEPARATOR.length());
          System.out.println("Java7ListToString: \n"+strLetter);
          //OUTPUT: A,B,C,D
    }
    public static void main(String[] args) {
        Java8ListToString();
        Java8StreamListToString();
        Java7ListToString();
    }
}

4、实战输出结果截图

在这里插入图片描述


Original url: Access
Created at: 2020-09-03 16:04:35
Category: default
Tags: none

请先后发表评论
  • 最新评论
  • 总共0条评论