Java 以数组形式读取输入
例如,我只是尝试从用户那里读取输入整数 2 1<作为一个整体 在调试器中,它可以放置每个整数,但当 生成的数组打印为Java 以数组形式读取输入,java,Java,例如,我只是尝试从用户那里读取输入整数 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]);
}
}