读取输入为数组

时间:2013-10-24 18:50:35

标签: java

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

  

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 个答案:

答案 0 :(得分:7)

您需要对{1}数组使用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

答案 1 :(得分: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);       
}

答案 2 :(得分:1)

您无法仅通过System.out.println(array);打印数组元素。遍历数组并打印数组中的每个元素。

for(int index=0; index < count; index++ )
   System.out.println(array[index]);

答案 3 :(得分: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]);   
        }

    }