1

我是 java 新手,我创建了接受 8 个值的数组。它工作正常,也接受值,但它没有在控制台上显示正确的输出,请帮助我可能是什么问题??

这是我的代码,

import java.util.*;


public class array2

{
    public static void main(String []args)

    {


        Scanner scan=new Scanner(System.in);    
    int[] nums=new int[8];  

        for(int count=0;count<8;count++)

        {

            nums[count]=scan.nextInt();     

        }


        System.out.println(nums);


    }



}
4

6 回答 6

3

使用System.out.println(Arrays.toString(nums));(import java.util.Arrays这样做)

如果您只是说System.out.println(nums);,它只会打印对数组的对象引用,而不是实际的数组元素。这是因为数组对象不会覆盖该toString()方法,因此它们使用Object class的默认toString()方法打印,该方法仅打印对象实例的 [class name]@[hashcode]。

于 2013-08-26T08:20:21.673 回答
1

这是因为您正在打印数组对象而不是元素

用这个

for(int i : nums){
   System.out.println(i);
}
  • 输出中的[符号表示正在打印的对象是一个数组。
  • 或者,您可以执行 System.out.println(Arrays.toString(nums));. 这给出String了数组的表示。
于 2013-08-26T08:20:38.063 回答
1

在 Java 中打印这样的数组是不可能的,你可能会得到类似 "[I"... 尝试循环:

for (int n=0; n<nums.length; ++n)
  System.out.println(nums[n]);
于 2013-08-26T08:21:56.997 回答
0

循环显示数组:

for(int count=0; count<8; count++)
{
   System.out.println(nums[count])
}

您正在打印数组引用,而不是它们的元素。

于 2013-08-26T08:20:35.663 回答
0

您需要使用Arrays.toString(int[])来创建包含预期来自的字符串。目前您正在打印数组本身的字符串表示形式。

于 2013-08-26T08:20:56.543 回答
0

nums[count]=scan.nextInt() 只会打印数组的内存位置,而不是数组内容。要打印数组内容,您需要像插入它们时那样循环。我会尝试:

for(int count=0;count<8;count++){

    System.out.println(nums[count]);
 }

希望有帮助

于 2013-08-26T08:24:28.883 回答