把逗号分隔的String字符串转List<Integer>

  • 把逗号分隔的String字符串转int集合
  • 集合或数组转变为逗号分隔的字符串的几种方式
    • 1、自己编码实现
    • 2、org.apache.commons.lang3.StringUtils
    • 3、StringJoiner, JDK1.8+
    • 4、String.join(), JDK1.8+
    • 5、Stream, Collectors.joining(), JDK1.8+

把逗号分隔的String字符串转int集合

代码通过Java 8 Stream实现起来非常容易!

  1. String ids = "1,2,3,4,5";
  2. List<Integer> idList = Arrays.stream(ids.split(",")).map(Integer::parseInt).collect(Collectors.toList());

集合或数组转变为逗号分隔的字符串的几种方式

首先,创建一个集合

  1. List<String> list = Lists.newArrayList(null, "bob", "jack");

1、自己编码实现

  1.     public static <T> String join(List<T> list, String splitStr) {
  2.         if (CollectionUtils.isEmpty(list))
  3.             return "";
  4.         if (list.size() == 1)
  5.             return String.valueOf(list.get(0));
  6.         StringBuilder sb = new StringBuilder();
  7.         boolean isFirst = true;
  8.         for (int i = 0; i < list.size(); i++) {
  9.             if (!isFirst) sb.append(splitStr);
  10.             sb.append(String.valueOf(list.get(i)));
  11.             isFirst = false;
  12.         }
  13.         return sb.toString();
  14.     }
  15.  
  16.     public static <T> String join(T[] array, String splitStr) {
  17.         if (ArrayUtils.isEmpty(array))
  18.             return "";
  19.         if (array.length == 1)
  20.             return String.valueOf(array[0]);
  21.         StringBuilder sb = new StringBuilder();
  22.         boolean isFirst = true;
  23.         for (int i = 0; i < array.length; i++) {
  24.             if (!isFirst) sb.append(splitStr);
  25.             sb.append(String.valueOf(array[i]));
  26.             isFirst = false;
  27.         }
  28.         return sb.toString();
  29.     }

输出

null,bob,jack

2、org.apache.commons.lang3.StringUtils

  1. System.out.println(StringUtils.join(list.toArray(), ","));

输出

,bob,jack

3、StringJoiner, JDK1.8+

  1.     StringJoiner sj = new StringJoiner(",");
  2.     list.forEach(e -> sj.add(String.valueOf(e)));
  3.     System.out.println(sj.toString());
  4.     
  5.     // 在连接之前操作字符串, 拼接前缀和后缀
  6.     StringJoiner sj2 = new StringJoiner(",", "START_", "_END");
  7.     list.forEach(e -> sj2.add(String.valueOf(e)));
  8.     System.out.println(sj2.toString());

输出

null,bob,jack
START_null,bob,jack_END

4、String.join(), JDK1.8+

  1. System.out.println(String.join(",", list));

输出

null,bob,jack

5、Stream, Collectors.joining(), JDK1.8+

  1.     System.out.println(list.stream().collect(Collectors.joining(",")));
  2.     
  3.     // 在连接之前操作字符串, 拼接前缀和后缀
  4.     String str = list.stream().map(e -> {
  5.        if (e != null) return e.toUpperCase();
  6.        else return "null";
  7.     }).collect(Collectors.joining(",", "START_", "_END"));
  8.     System.out.println(str);

输出

null,bob,jack
START_null,BOB,JACK_END

posted @ 2023-02-13 17:18  JLCUI  阅读(3553)  评论(0编辑  收藏  举报