线程“main”java.util.InputMismatchException中的exception

我需要帮助在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”。

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

扫描程序抛出此exception,指示检索到的标记与预期类型的​​模式不匹配,或标记超出预期类型的​​范围。

 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值之前输入一个数字。