Java中如何将类内声明的二维int数组扁平化拼接为单个字符串
实现方案
你可以根据项目使用的JDK版本选择以下两种实现方式:
方式1:JDK 8及以上版本(Stream流实现,代码更简洁)
通过Stream API可以快速完成数组扁平化和拼接操作,示例代码如下:
import java.util.Arrays; import java.util.stream.Collectors; // 类内部的方法 public String flattenNumbersToString() { // 非空判断避免空指针异常 if (numbers == null) { return ""; } return Arrays.stream(numbers) .flatMapToInt(Arrays::stream) // 把二维数组扁平化为一维IntStream .mapToObj(String::valueOf) // 将int类型转为字符串 .collect(Collectors.joining(",")); // 逗号为分隔符,可按需替换为其他字符,比如空字符串"" }
如果需要生成带前后缀的格式,比如[1,2,3,4],可以使用Collectors.joining的三参数重载:Collectors.joining(",", "[", "]")。
方式2:JDK 7及以下版本(传统循环实现,兼容性更好)
如果项目使用低版本JDK,可以用两层循环遍历完成拼接:
// JDK 5及以下版本可以把StringJoiner替换为StringBuilder,最后单独处理末尾多余分隔符即可 import java.util.StringJoiner; public String flattenNumbersToString() { if (numbers == null) { return ""; } StringJoiner sj = new StringJoiner(","); // 可按需修改分隔符 for (int[] row : numbers) { if (row == null) { continue; } for (int num : row) { sj.add(String.valueOf(num)); } } return sj.toString(); }
两种实现都默认增加了空判断逻辑,兼容
numbers为null、内部子数组为null的异常场景。
内容的提问来源于stack exchange,提问作者dce fee
相关产品推荐
相关产品推荐

