我只是试图从用户那里读取输入整数,例如
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
方法打印
但是当我运行代码时,我意识到了,
即使用户输入整数
,程序也会等待我我的扫描仪物流不正确吗?
答案 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]);
}
}