如何通过Stream将int[]元素添加到StringBuilder并为每个元素加空格
解决StringBuilder追加int数组元素时无分隔符的问题
你的代码仅将每个int元素直接追加到StringBuilder中,未添加分隔空格,因此结果会连在一起。以下几种方法可实现预期的带空格分隔效果:
方法一:追加元素时添加空格,最后移除末尾冗余空格
在原逻辑基础上修改,手动添加空格后处理末尾的多余空格:
StringBuilder res = new StringBuilder(); Arrays.stream(brr).forEach(num -> res.append(num).append(" ")); // 避免数组为空时出错,检查后删除最后一个空格 if (res.length() > 0) { res.deleteCharAt(res.length() - 1); }
方法二:使用Stream的Collectors.joining生成带分隔符的字符串
通过Stream的collect操作直接生成带空格分隔的字符串,再追加到StringBuilder,代码更简洁:
import java.util.stream.Collectors; StringBuilder res = new StringBuilder(); String joinedStr = Arrays.stream(brr) .mapToObj(String::valueOf) .collect(Collectors.joining(" ")); res.append(joinedStr);
方法三:使用StringJoiner自动处理分隔符
StringJoiner会自动处理元素间的分隔,无需手动删除末尾空格:
import java.util.StringJoiner; StringBuilder res = new StringBuilder(); StringJoiner joiner = new StringJoiner(" "); Arrays.stream(brr).forEach(num -> joiner.add(String.valueOf(num))); res.append(joiner);
内容的提问来源于stack exchange,提问作者Habibur Rahman
相关产品推荐
相关产品推荐

