最推荐使用 arrays.tostring() 将数组转为字符串,它专为调试设计,自动处理 null、统一格式、避免空指针,支持所有数组类型;二维数组需用 arrays.deeptostring()。

Java 中把数组转成字符串,最常用也最推荐的方式就是 Arrays.toString() ——它专为调试和快速验证设计,一行代码就能清晰展示数组内容,无需手动拼接或遍历。
为什么优先用 Arrays.toString?
它自动处理 null 元素、嵌套数组(显示地址)、基本类型与引用类型统一格式,并按标准中括号格式输出,比如 [1, 2, 3] 或 [null, "hello", 42]。相比自己写 for 循环或 StringBuilder,既安全又省心。
- 对 int[]、String[]、Object[] 等都适用
- 避免空指针异常(对 null 数组返回
"null") - 输出可读性强,适合日志打印和单元测试断言
基本用法:覆盖常见数组类型
直接传入数组引用即可,不用关心长度或类型擦除:
-
基本类型数组:
Arrays.toString(new int[]{1, 2, 3})→"[1, 2, 3]" -
字符串数组:
Arrays.toString(new String[]{"a", "b"})→"[a, b]" -
对象数组(含 null):
Arrays.toString(new Integer[]{1, null, 3})→"[1, null, 3]" -
二维数组:用
Arrays.deepToString(),例如Arrays.deepToString(new int[][]{{1,2},{3,4}})→"[[1, 2], [3, 4]]"
实战场景:调试与测试中的高效用法
在开发中别再 System.out.println(arr)——它只会打印哈希值。换成 toString 后,数据一目了然:
- 方法返回前加一句:
System.out.println("result: " + Arrays.toString(resultArray)); - JUnit 断言失败时增强提示:
assertEquals("Expected [1,2,3]", Arrays.toString(expected), Arrays.toString(actual)); - 日志中记录参数:
log.debug("Input array: {}", Arrays.toString(input));
注意边界情况
虽好用,但要注意几个小细节:
- 传入
null会直接返回字符串"null",不是抛异常 - 对自定义对象数组,依赖其
toString()方法;若未重写,会显示类名+哈希码 - 不适用于需要特定分隔符(如逗号无空格)的生产级格式化——此时改用
String.join()或Collectors.joining()
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











