You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:03:53