有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

无法将java扫描程序转换为int

由于某种原因,我得到了一个错误,扫描仪无法转换为int,即使我使用的是nextInt。为什么呢?这里完全没有问题

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,这里我要说明的是,输入将是一个整数,它仍然不会运行。 这只是代码的一部分,但我经常遇到这个错误。我已经导入了扫描仪。 提前非常感谢

附言-我正在ubuntu 17.10上使用netbeans。我不知道这是否重要


共 (3) 个答案

  1. # 1 楼答案

    在这一行maara[counter]=mis;上,您试图将mis(the Scanner)放入int数组中

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

    int tmp = mis.nextInt();
    System.out.println(tmp);
    maara[counter] = tmp;
    
  2. # 2 楼答案

    Scanner不是int。如果你以正确的方式提问,它会给你int

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

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

    maara[counter]=mis.nextInt();
    

    但是请注意,您不想这样做,因为您将得到与前一行中打印的不同的int(可能),因为您需要从扫描仪中获取两个值。相反,请执行以下操作:

    int value = mis.nextInt();
    System.out.println(value);
    maara[counter] = value;
    
  3. # 3 楼答案

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

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