-1

例如,我只是想从用户那里读取输入整数

2 2 1 1 1 < 整体

在调试器中,它可以放置每个整数,但是当

结果数组被打印出来,就像[I@19eda2c打印出来的一样。

public static void main(String[] args) {
int count=0;
int[] array = new int[10];
String input;
        Scanner scan = new Scanner(System.in);

System.out.println("Enter up to 10 integers: ");
while(scan.hasNextInt()){

array[count] = scan.nextInt();
count++;

}
System.out.println(array);

   }

}

我现在明白它需要用for循环或toString方法打印

但是当我运行代码时我意识到,

即使用户输入整数,程序也会等待我

我的扫描仪物流不正确吗?

4

4 回答 4

7

您需要java.util.Arrays.toString()对一维数组使用方法。

或者

java.util.Arrays.deepToString()对于多维数组。

您的程序很好,只是如果用户输入 12 个数字,它将读取 12 个整数。您的循环需要从 0 运行到 9 以读取 10 个数字,并且只要输入中有标记即可

这是如何Arrays.toString()工作的:

返回指定数组内容的字符串表示形式。字符串表示由数组元素的列表组成,括在方括号 ("[]") 中。相邻元素由字符“,”(逗号后跟一个空格)分隔。通过 String.valueOf(int) 将元素转换为字符串

这是如何Arrays.deepToString()工作的:

返回指定数组的“深层内容”的字符串表示形式。如果数组包含其他数组作为元素,则字符串表示包含它们的内容等等。此方法设计用于将多维数组转换为字符串。

有关更多信息,请阅读文档:http ://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html

于 2013-10-24T18:52:53.153 回答
1
System.out.println(array); // prints value from default toString() method                 
                           // implementation (e.g. 'className + '@' + hashCode' in Java Oracle) 

你应该使用类似的东西

System.out.println(Arrays.toString(array));   

打印值。

更好的是使用List而不是array

public static void main(String[] args) 
{
   List<Integer> array = new ArrayList<Integer>();
   String input;
   Scanner scan = new Scanner(System.in);
   while(scan.hasNextInt())
   {
      array.add(scan.nextInt());
   }
   System.out.println("Count=" + array.size());
   System.out.println(array);       
}
于 2013-10-24T18:53:05.097 回答
1

您不能仅按 . 打印数组的元素System.out.println(array);。遍历数组并打印数组中的每个元素。

for(int index=0; index < count; index++ )
   System.out.println(array[index]);
于 2013-10-24T18:54:45.657 回答
1

您只是打印array对象的文本表示,使用 for 循环在数组中迭代并显示其内容。

public static void main(String[] args) {
        int count = 0;
        int[] array = new int[10];
        String input;
        Scanner scan = new Scanner(System.in);

        System.out.println("Enter up to 10 integers: ");
        while (scan.hasNextInt()) {

            array[count] = scan.nextInt();
            count++;

        }

        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);   
        }

    }
于 2013-10-24T18:55:19.357 回答