如何在Java中正确打印用户输入后的数组元素?
问题分析与解决:Java数组无法正确打印元素
你遇到的问题核心是:直接打印数组对象时,Java默认输出的是数组的哈希码,而非元素内容。
当你执行System.out.println(var)时,实际上调用的是Object类的toString()方法,输出格式为[I@xxxxxx([I表示int类型数组,xxxxxx是哈希值),这并不是你想要的元素列表。
解决方法有两种:
1. 手动循环遍历数组打印
通过循环逐个输出数组元素,可灵活控制打印格式:
// 增强for循环,写法更简洁 for (int num : var) { System.out.print(num + " "); } System.out.println(); // 打印完所有元素后换行
或者用普通for循环:
for (int i = 0; i < var.length; i++) { System.out.print(var[i] + (i == var.length - 1 ? "\n" : " ")); }
2. 使用Arrays.toString()工具方法
Java提供了java.util.Arrays类的toString()方法,可直接将一维数组转换为包含元素的字符串:
修改后的完整代码:
import java.util.Scanner; import java.util.Arrays; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("enter no of digits"); int n = sc.nextInt(); int var[] = new int[n]; for (int i = 0; i < n; i++) { var[i] = sc.nextInt(); } System.out.println(Arrays.toString(var)); sc.close(); } }
执行后会输出类似[1, 2, 3, 4]的格式,清晰展示数组内的所有元素。
内容的提问来源于stack exchange,提问作者C0DiFire
相关产品推荐
相关产品推荐

