java数组默认打印为内存地址,需用arrays.tostring()处理一维数组、arrays.deeptostring()处理多维数组,二者均安全支持null元素,null数组传入返回字符串"null"。

Java 中数组默认打印出来是一串内存地址,比如 [Ljava.lang.String;@1b6d3586,根本看不出内容。用 Arrays.toString() 是最简单、最常用的办法,能直接把一维数组转成可读的字符串形式,比如 [apple, banana, cherry]。
一维数组:Arrays.toString() 直接搞定
这是最常见也最省事的用法。它专为一维数组设计,内部自动处理 null 元素、空格、逗号分隔和方括号包裹,无需额外拼接。
- 对 int、String、Boolean 等基本类型和引用类型数组都有效
- 遇到 null 元素会显示为
null,不会抛异常 - 示例:
System.out.println(Arrays.toString(new String[]{"a", null, "c"}));输出[a, null, c]
二维及多维数组:改用 Arrays.deepToString()
Arrays.toString() 对二维数组只会输出每行的地址,比如 [[Ljava.lang.String;@xxx, [Ljava.lang.String;@yyy]。这时候必须换 Arrays.deepToString(),它会递归展开每一层。
- 支持任意嵌套深度,包括 Object[]、int[][]、String[][][]
- null 元素和 null 行都能安全处理
- 示例:
System.out.println(Arrays.deepToString(new String[][]{{"x"}, {"y", "z"}}));输出[[x], [y, z]]
导出前想加前缀或换行?先 toString 再加工
Arrays.toString() 返回的是标准格式字符串,后续可自由拼接或替换。比如导出日志时加标签,或适配 JSON 格式时去掉方括号。
- 加前缀:
"Data: " + Arrays.toString(arr) - 换行美化(适合调试):
Arrays.toString(arr).replace(", ", ",\n ") - 转为 JSON 数组片段(需确保元素不含特殊字符):
Arrays.toString(arr).replace("[", "[").replace("]", "]"),实际建议用 Jackson/Gson
注意边界情况:null 数组不能直接传入
如果数组引用本身是 null,调用 Arrays.toString(null) 会返回字符串 "null",不会报错——这点很友好。但如果你希望明确区分“空数组”和“null 数组”,就得先判空。
- 安全写法:
arr == null ? "null" : Arrays.toString(arr) - 空数组
new String[0]会输出[],和 null 表现不同 - 避免误判:不要用
arr.length == 0判断是否为 null,否则会触发 NullPointerException
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











