Java中如何将整数集合转换为单个字符串?
把Java整数集合转成单个字符串?看这几种方法就够了
嘿,先看你贴的这段代码——它其实是把集合转成了字符串数组然后挨个打印,但没实现你要的「转成单个字符串」的目标对吧?我给你整理几种靠谱的实现方式:
首先先贴下你的原代码方便对照:
Set<Integer> s = new HashSet<>(); s.add(1); s.add(3); int n = s.size(); String arr[] = new String[n]; arr = s.toArray(arr); for (String x : arr ) System.out.println(x);
方法1:Java 8+ Stream API(最推荐,简洁优雅)
自从Java 8引入Stream后,处理这类集合拼接的需求变得超简单,配合Collectors.joining()就能一步到位:
Set<Integer> s = new HashSet<>(); s.add(1); s.add(3); // 直接拼接成无分隔符的字符串 String plainResult = s.stream() .map(String::valueOf) // 把Integer转成String .collect(Collectors.joining()); System.out.println(plainResult); // 输出:13 // 如果需要加分隔符(比如逗号),直接给joining传参数就行 String separatedResult = s.stream() .map(String::valueOf) .collect(Collectors.joining(", ")); System.out.println(separatedResult); // 输出:1, 3
方法2:传统循环拼接(兼容Java 8之前的版本)
如果你的项目还在用老版本Java,用StringBuilder循环拼接也很稳:
Set<Integer> s = new HashSet<>(); s.add(1); s.add(3); StringBuilder sb = new StringBuilder(); for (Integer num : s) { sb.append(num); // 要是需要分隔符,就加这句:sb.append(", "); } // 要是加了分隔符,记得最后去掉末尾多余的分隔符(可选) // if (sb.length() > 0) { // sb.delete(sb.length() - 2, sb.length()); // } String result = sb.toString(); System.out.println(result);
方法3:用第三方工具类(省得自己写)
如果你的项目已经引入了Apache Commons Lang或者Guava这类工具库,直接用现成的方法更省事:
Apache Commons Lang的StringUtils
Set<Integer> s = new HashSet<>(); s.add(1); s.add(3); // 无分隔符 String result = StringUtils.join(s); // 带分隔符 String resultWithSep = StringUtils.join(s, ", ");
Guava的Joiner
Set<Integer> s = new HashSet<>(); s.add(1); s.add(3); String result = Joiner.on(", ").join(s);
最后提个小细节:你原代码里arr = s.toArray(arr);其实没必要重新赋值,因为toArray会把元素直接填充到你传入的数组里(只要数组长度够),不过这个不影响功能,就是个小优化点~
内容的提问来源于stack exchange,提问作者Teja
相关产品推荐
相关产品推荐

