跨境派

跨境派

跨境派,专注跨境行业新闻资讯、跨境电商知识分享!

当前位置:首页 > 卖家故事 > Java 将 List 转换为 String常见方式

Java 将 List 转换为 String常见方式

时间:2024-04-06 11:40:35 来源:网络cs 作者:璐璐 栏目:卖家故事 阅读:

标签: 方式  转换 
阅读本书更多章节>>>>

将 List 转换为 String的几种方式

使用 List的toString()方法将 List 转换为 String;结果前后会带有英文的中括号[],如:[1, 2, 3, 4, 5]使用Java8 stream流中的Collections.joining()方法,带有逗号分隔符或自定义分隔符将集合转成String字符串使用String.join()方法将带有逗号分隔符或自定义分隔符的集合转换为字符串使用Apache commons包下的StringUtils.join()方法;转成的String结尾带有分隔符小尾巴,如:"张三,李四,"使用 StringBuilder、StringBuffer的append方法自定义join()方法
第一种:List.toString方法

List.toString()产生的结果会在开头和结尾添加英文中括号,每个字符串用逗号分隔符分隔(分隔符不可更变)。如果我们想去掉方括号的话,需要借助String.replaceAll方法。

/**  * List的toString方法,结果前后会带有英文的中括号[],如:[1, 2, 3, 4, 5]  */public static void main(String[] args) {   List<Integer> asList = Arrays.asList(1, 2, 3, 4, 5);      String list2String = asList.toString();   System.out.println(list2String);   //使用replaceAll方法替换 中括号   list2String = list2String.replaceAll("\\[|]", "");   System.out.println(list2String);}
 第二种:Stream流转String

java8 stream中提供了Collectors.join()方法可用于将集合转成为具有指定分隔符、前缀和后缀的字符串。

public class Demo2 {    /**     * List 转 String     * stream流中的Collections.joining方法     **/    public static void main(String[] args) {        List<String> list = Arrays.asList("张三", "李四", "王武", null, "麻子");        //java stream流中的Collections.joining方法        //指定分隔符        String collect = list.stream().collect(Collectors.joining(","));        //没有分隔符,直接拼接        String collect1 = list.stream().collect(Collectors.joining());        //指定分隔符,前缀,后缀        String collect2 = list.stream().collect(Collectors.joining(",", "{", "}"));        System.out.println(collect);//张三,李四,王武,null,麻子        System.out.println(collect1);//张三李四王武null麻子        System.out.println(collect2);//{张三,李四,王武,null,麻子}    }}
第三种:String.join()方法

java8 String添加了一个特殊的Join方法,用于将集合转换为指定分隔符连接的字符串。

   /**     * String.join()     **/    public static void main(String[] args) {        List<String> list = Arrays.asList("张三", "李四", "王武", null, "麻子");        String join = String.join(",", list);        System.out.println(join);//张三,李四,王武,null,麻子    }
第四种:StringUtils.join()方法

Apache commons包的外部库有一个方法StringUtils.join() 方法,它类似于 String.join() 方法,用于将集合转成指定分隔符链接的字符串;但是,如果集合中有null的话,会被转换成空串。

   /**     * StringUtils.join()     **/    public static void main(String[] args) {        List<String> list = Arrays.asList("张三", "李四", "王武", null, "麻子");        //StringUtils.join方法,集合中有null的话,会转成空串""        String join = StringUtils.join(list, ",");        System.out.println(join); //张三,李四,王武,,麻子    }
第五种:自定义Join方法

java中提供了StringBuilder、StringBuffer两个类,可以使用他们提供的append方法自定义join方法,将集合转成字符串。

   /**     * StringBuilder、StringBuffer的append()方法     **/    public static void main(String[] args) {        List<String> list = Arrays.asList("张三", "李四", "王武", null, "麻子");        //3. StringBuilder、StringBuffer的append方法自定义join方法        StringBuilder sb = new StringBuilder();        for (String s : list) {            sb.append(s).append(",");        }        //sb.insert(0, "join如下:");        if (sb.length() > 1) {            sb.deleteCharAt(sb.length() - 1);        }        System.out.println(sb.toString()); //张三,李四,王武,null,麻子    }

 逻辑如上,上面逻辑可以封账成一个通用的join方法

public class Demo2 {    public static class ListJoin<E> {        public String join(String delimiter, Collection<? extends E> list) {            Objects.requireNonNull(delimiter);            Objects.requireNonNull(list);            StringBuilder result = new StringBuilder();            for (E obj : list) {                //根据需要对空进行处理                if (Objects.isNull(obj)) {                    continue;                }                result.append(obj).append(delimiter);            }            if (result.length() > 1) {                result.deleteCharAt(result.length() - 1);            }            return result.toString();        }    }    /**     * StringBuilder、StringBuffer的append()方法     **/    public static void main(String[] args) {        List<String> list = Arrays.asList("张三", "李四", "王武", null, "麻子");        //上述join方法可以修改成通用的join方法        ListJoin<String> strDemo = new ListJoin<>();        String join = strDemo.join(",", list);        System.out.println(join); //张三,李四,王武,麻子        ListJoin<Integer> intDemo = new ListJoin<>();        List<Integer> asList = Arrays.asList(1, 2, 3, 4, 5);        String intJoin = intDemo.join("-", asList);        System.out.println(intJoin); //1-2-3-4-5    }}

以上方式都可以将List集合转成字符串,具体根据业务需要使用不同方式。

阅读本书更多章节>>>>

本文链接:https://www.kjpai.cn/gushi/2024-04-06/154740.html,文章来源:网络cs,作者:璐璐,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

文章评论