arrays.tostring()是java中调试一维数组最简单有效的方式,可将数组转为易读字符串如[a, b, c];多维数组需用arrays.deeptostring(),避免手动拼接或错误使用arrays.aslist()。

Java 中调试数组时,直接打印数组对象只会输出类似 [Ljava.lang.String;@1b6d3586 这样的哈希值,毫无可读性。用 Arrays.toString() 是最简单、最常用、也最有效的解决方式——它能把一维数组转成易读的字符串格式,比如 [a, b, c]。
什么时候该用 Arrays.toString()
适用于所有一维数组(基本类型或引用类型),尤其是调试时快速查看内容:
- 方法返回数组,想确认结果是否符合预期
- 循环中某次迭代的数组状态需要临时观察
- 单元测试里断言失败,需打印实际数组值对比
- 日志中记录数组内容,避免手动拼接出错
基本用法和常见写法
调用前记得导入:import java.util.Arrays;
直接传入数组即可,无需额外处理:
-
System.out.println(Arrays.toString(new int[]{1, 2, 3}));→ 输出[1, 2, 3] -
System.out.println(Arrays.toString(strArray));→ 输出[hello, world] - 配合变量名一起打印更清晰:
System.out.println("data = " + Arrays.toString(data));
注意多维数组要换方法
Arrays.toString() 只对一维有效。二维及以上数组会退化为对象地址(如 [[Ljava.lang.String;@xxx)。
正确做法是用 Arrays.deepToString():
String[][] matrix = {{"a","b"}, {"c","d"}};-
System.out.println(Arrays.deepToString(matrix));→ 输出[[a, b], [c, d]]
替代方案与小提醒
虽然 IDE 调试器能展开数组,但控制台日志或远程环境仍依赖字符串化输出。
- 不要自己写 for 循环拼接,容易漏空格、逗号或边界判断
- 避免用
Arrays.asList(arr).toString()处理基本类型数组(如int[]),它会把整个数组当一个元素,结果是[[I@xxx] - 如果要用在日志中,注意敏感数据脱敏,
Arrays.toString()本身不处理隐私
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











