英文:
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"的乱码值。
为什么会发生这种情况?
英文:
I am a beginner to Java. I read this recently
The elements in the array allocated by new will automatically be initialized to zero (for numeric types), false (for boolean), or null (for reference types)
reference 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);
Both arrays are giving me a garbled value something like [I@4b67cf4d
Why is this happening?
答案1
得分: 1
你需要定义ToString()来获取对象(如数组)的漂亮字符串输出。数组默认情况下没有定义ToString()方法。
相反,尝试使用
Arrays.toString(a)
英文:
You need to define ToString() to get a nice string print out for objects like Arrays. Arrays don't have one defined by default.
Instead, try using
Arrays.toString(a)
答案2
得分: 0
你正在打印数组本身的字符串表示,而不是它们的内容。那种特定的表示方式编码了数据类型和存储地址。
实现你想要的一个方法是使用 java.util.Arrays.toString()
:
System.out.println(Arrays.toString(a));
System.out.println(Arrays.toString(a1));
英文:
You are printing the string representations of the arrays themselves, not of their contents. That particular representation encodes data type and storage address.
One way to get what you're after would be to use java.util.Arrays.toString()
:
System.out.println(Arrays.toString(a));
System.out.println(Arrays.toString(a1));
答案3
得分: 0
如果您希望所有的值以空格分隔,您可以使用for循环打印出这些值;虽然这样会更慢,但您可以根据自己的喜好进行更改。
int n = scan.nextInt();
int a[] = new int[n];
int a1[] = new int[5];
// 打印 a
System.out.println("Array a 的值:");
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
System.out.println(); // 换行
// 打印 a1
System.out.println("Array a1 的值:");
for (int i = 0; i < a1.length; i++) {
System.out.print(a1[i] + " ");
}
System.out.println();
在您的代码上表现很不错,继续保持,不断进步!
英文:
If you want all the values separated by spaces, you can use a for loop to print out the values; this is slower but you can change it to your liking.
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();
Good job on your code, keep getting better!
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论