数组未按预期初始化
Array not initializing as predicted
我是 Java 的初学者。我最近读了这个
new分配的数组中的元素会自动初始化为零(对于数值类型)、false(对于布尔值)或null(对于引用类型)
参考 https://www.geeksforgeeks.org/arrays-in-java/
int n=scan.nextInt();
int a[]=new int[n];
int a1[]=new int[5];
System.out.println(a);
System.out.println(a1);
两个数组都给我一个乱码,类似于 [I@4b67cf4d
为什么会这样?
您需要定义 ToString() 才能为数组等对象打印出漂亮的字符串。默认情况下,数组没有定义。
改为尝试使用
Arrays.toString(a)
您正在打印数组本身的字符串表示形式,而不是它们的内容。该特定表示对数据类型和存储地址进行编码。
获得所需内容的一种方法是使用 java.util.Arrays.toString()
:
System.out.println(Arrays.toString(a));
System.out.println(Arrays.toString(a1));
如果你想要所有的值都用空格分隔,你可以使用for循环打印出这些值;这比较慢,但您可以根据自己的喜好进行更改。
int n = scan.nextInt();
int a[] = new int[n];
int a1[] = new int[5];
// print a
System.out.println("Array a values:");
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
System.out.println(); // new line
// print a1
System.out.println("Array a1 values:");
for (int i = 0; i < a1.length; i++) {
System.out.print(a1[i] + " ");
}
System.out.println();
你的代码写得很好,不断进步!
我是 Java 的初学者。我最近读了这个
new分配的数组中的元素会自动初始化为零(对于数值类型)、false(对于布尔值)或null(对于引用类型) 参考 https://www.geeksforgeeks.org/arrays-in-java/
int n=scan.nextInt();
int a[]=new int[n];
int a1[]=new int[5];
System.out.println(a);
System.out.println(a1);
两个数组都给我一个乱码,类似于 [I@4b67cf4d
为什么会这样?
您需要定义 ToString() 才能为数组等对象打印出漂亮的字符串。默认情况下,数组没有定义。
改为尝试使用
Arrays.toString(a)
您正在打印数组本身的字符串表示形式,而不是它们的内容。该特定表示对数据类型和存储地址进行编码。
获得所需内容的一种方法是使用 java.util.Arrays.toString()
:
System.out.println(Arrays.toString(a));
System.out.println(Arrays.toString(a1));
如果你想要所有的值都用空格分隔,你可以使用for循环打印出这些值;这比较慢,但您可以根据自己的喜好进行更改。
int n = scan.nextInt();
int a[] = new int[n];
int a1[] = new int[5];
// print a
System.out.println("Array a values:");
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
System.out.println(); // new line
// print a1
System.out.println("Array a1 values:");
for (int i = 0; i < a1.length; i++) {
System.out.print(a1[i] + " ");
}
System.out.println();
你的代码写得很好,不断进步!