Java 以数组形式读取输入

Java 以数组形式读取输入,java,Java,例如,我只是尝试从用户那里读取输入整数 2 1

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

2 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
方法打印

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

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


我的扫描仪物流是否不正确?

对于1D数组,需要使用
java.util.Arrays.toString()
方法

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

您的程序很好,只是如果用户输入12个数字,它将读取12个整数。您的循环需要从0运行到9才能读取10个数字,而不是只要输入中有令牌

以下是
Arrays.toString()
的工作原理:

返回指定内容的字符串表示形式 数组。字符串表示法由数组的 元素,用方括号(“[]”)括起。相邻元素为 由字符“,”分隔(逗号后跟空格)。 元素按String.valueOf(int)转换为字符串

以下是
Arrays.deepToString()
的工作原理:

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

有关更多信息,请阅读文档:

你应该使用类似于

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);       
}
publicstaticvoidmain(字符串[]args)
{
列表数组=新的ArrayList();
字符串输入;
扫描仪扫描=新扫描仪(System.in);
while(scan.hasNextInt())
{
add(scan.nextInt());
}
System.out.println(“Count=“+array.size());
System.out.println(数组);
}

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

for(int index=0; index < count; index++ )
   System.out.println(array[index]);
for(int index=0;index
您只是打印
数组
对象的文本表示,使用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]);   
        }

    }
publicstaticvoidmain(字符串[]args){
整数计数=0;
int[]数组=新的int[10];
字符串输入;
扫描仪扫描=新扫描仪(System.in);
System.out.println(“最多输入10个整数:”);
while(scan.hasNextInt()){
数组[count]=scan.nextInt();
计数++;
}
for(int i=0;i
正在打印的值是数组的内存地址您不能仅通过System.out.println(数组);.打印数组的元素。遍历数组并打印数组中的每个元素。
toString()
方法在
数组
对象上被隐式调用,该对象不是为了打印数组的内容而实现的。它只是打印内存地址。请改用
数组
类的
toString()
方法。它不是hashcode。对象的文本表示形式。+1though.yup,感谢您的更正,System.out.println(数组)与System.out.println(array.toString())相同,它高效且简洁。+1它不打印引用,而是打印
System.out.println(array.toString())
,即当您在
object
中看到toString方法时,对象的文本表示形式。
toString
方法的返回值为
getClass().getName()+“@”+Integer.toHexString(hashCode())
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]);   
        }

    }