java - 在线程"main" java.util.InputMismatchException 中,异常

  显示原文与译文双语对照的内容

我需要用java做一个练习,我可能会遇到这个错误 2小时。 任何帮助都很有用。


Exception in thread"main" java.util.InputMismatchException
 at java.util.Scanner.throwFor(Scanner.java:909)
 at java.util.Scanner.next(Scanner.java:1530)
 at java.util.Scanner.nextInt(Scanner.java:2160)
 at java.util.Scanner.nextInt(Scanner.java:2119)
 at prodavnica.Prodavnica.main(Prodavnica.java:60)
Java Result: 1


package prodavnica;

public class Proizvod {

 private String ime_proizvod;
 private static int cena;

 public Proizvod(String ime_proizvod, int cena) {
 this.ime_proizvod = ime_proizvod;
 this.cena=cena;
 }

 public String getIme_proizvod() {
 return ime_proizvod;
 }

 public void setIme_proizvod(String ime_proizvod) {
 this.ime_proizvod = ime_proizvod;
 }

 public static int getCena() {
 return cena;
 }

 public static void setCena(int cena) {
 Proizvod.cena = cena;
 }

 public void pecatiPodatoci(){
 System.out.println("Ime:"+ime_proizvod+" Cena:"+cena);
 }

}

还有:


package prodavnica;

import java.util.Scanner;

public class Prodavnica {

 private String ime_prodavnica;
 private Proizvod proizvodi[]=new Proizvod[20];

 public Prodavnica(String ime_prodavnica) {
 this.ime_prodavnica = ime_prodavnica;
 }

 int br=0;

 public void dodadiProizvod(Proizvod p){
 proizvodi[br]=p;
 br++;
 }

 public Proizvod najskapProizvod(){

 Proizvod max=proizvodi[0];

 for(int r=0;r<proizvodi.length;r++){

 if(max.getCena()<proizvodi[r+1].getCena()){
 max=proizvodi[r+1];
 }
 }
 return max;

 }


 public static void main(String[] args) {
 Scanner input = new Scanner(System.in);


 Prodavnica pro1=new Prodavnica("Tinex");

 int n;

 System.out.println("Vnesete kolku proizvodi ke stavite:");
 n=input.nextInt();



 String imer = input.nextLine();
 int cenar = input.nextInt();


 pro1.dodadiProizvod(new Proizvod(imer, cenar));


 System.out.println("Ime-pr:"+pro1.proizvodi[0].getIme_proizvod()+" Cena="+pro1.proizvodi[0].getCena());
 }

}

无法在类Proizvod的变量"proizvodi"上输入字符串"imer"或者 int"cenar"。

有什么帮助为什么我得到这个错误? 谢谢!

时间: 作者:

扫描程序抛出的这里异常指示检索到的令牌与预期类型的Pattern 不匹配,或者该标记超出期望。


String imer = input.next();//Use for String Input
input.nextLine();//Use for next line of input
int cenar = input.nextInt();

你需要在到达imer或者cenar之前放置一个 int:

 
n=input.nextInt();

 

这一行似乎不是做任何事情,要么删除它,或者在放置imer或者cenar值之前放入一个数字。

...