List 转换成以逗号分割的String字符串

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-28 18:52   864   0
1、使用谷歌的Joiner(代码超级短)

import com.google.common.base.Joiner;
 
import java.util.ArrayList;
import java.util.List;
 
public class Convert {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(5);
        list.add(4);
        list.add(1);
        System.out.println(Joiner.on(",").join(list));
    }
}
2、使用String.join方法(需要元素是CharSequence类型的子类才行,并且需要同类型)
   使用StringUtils.join方法(没有上面的限制) 推荐使用!!!!

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
 
public class Convert {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(5);
        list.add(4);
        list.add(1);
        System.out.println(String.join(",", list.stream().map(String::valueOf).collect(Collectors.toList())));
        System.out.println(StringUtils.join(list, ",")); //对元素没有限制,如果list为null返回字符串null
    }
}
3、使用1.8新特性 collect转换
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

 
public class Convert {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
  list.add(1);
  list.add(2);
  list.add(5);
  list.add(4);
  list.add(1);
  System.out.println(list.stream().map(String::valueOf).collect(Collectors.joining(",")));
    }
}

拓展: 逗号分隔的String字符串转成List

public static void main(String args[]) {
        String arrayStr="1,2,5,4,1";

        //方式1
        List<Integer> integerList = Arrays.stream(arrayStr.split(",")).map(s -> Integer.valueOf(s.trim())).collect(Collectors.toList());
        //方式2(判空处理,推荐)
        List<Integer> integerList1 = StringUtils.isNotBlank(arrayStr)? Stream.of(arrayStr.split(",")).map(Integer::valueOf).collect(Collectors.toList()): Lists.newArrayList();
        //方式3
//        List<Integer> integerList2 = Arrays.asList((Integer[]) ConvertUtils.convert("1,2".split(","), Integer.class));
        System.out.println(integerList1);
        System.out.println(integerList);
 
    }

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP