扫描仪无法转换为int

时间:2018-01-16 19:21:50

标签: java

由于某种原因,即使我使用nextInt,我也会收到一条错误,即扫描程序无法转换为int。这是为什么?在这里完成菜鸟。

System.out.println("How many numbers does your array contains?") ;
Scanner num= new Scanner(System.in);
Scanner mis=new Scanner(System.in);
System.out.println(num.nextInt());
int maara[]=new int[num]; 
for(int counter=0; counter<maara.length; counter++){
    System.out.println("enter num");
    System.out.println(mis.nextInt());
    maara[counter]=mis ;

我已经搜索了很多,但问题始终是人们使用nextLine,在这里我说明输入将是一个整数并且它仍然不会运行。 这只是代码的一部分,但我遇到了这个错误。我已经导入了扫描仪。 非常感谢你提前!

P.S。 - 我在ubuntu 17.10上使用netbeans。不知道这是否重要。

3 个答案:

答案 0 :(得分:0)

在此行maara[counter]=mis;上,您试图将misScanner)放入int数组中。

您需要保存nextInt()的结果并将其放入。

int tmp = mis.nextInt();
System.out.println(tmp);
maara[counter] = tmp;

答案 1 :(得分:0)

错误与往常一样。将最后两个语句替换为

System.out.println(“Enter a number”);
int x = mis.nextInt();
maara[counter] = x;

答案 2 :(得分:0)

Scanner不是int。如果你以正确的方式提出问题,那就会给你int

它就像一个超市:它会卖给你牛奶,但它本身并不是牛奶。你必须从超市买牛奶。

您需要将类型为int的内容分配给数组元素:

maara[counter]=mis.nextInt();

但请注意,您不想这样做,因为您将获得与前一行打印的int(可能)不同,因为您要求的是来自扫描仪的两个值。相反,做一些像:

int value = mis.nextInt();
System.out.println(value);
maara[counter] = value;