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

标签 java program-entry-point 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”或整数“cenar”。

最佳答案

此异常由扫描程序抛出,指示检索到的 token 与预期类型的​​模式不匹配,或者 token 超出预期类型的​​范围。

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

关于java - 线程 "main"java.util.InputMismatchException 中的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21143028/

相关文章:

java - 在主类方法中找不到字符串方法

java - 为什么我会收到输入无效无限循环?

java - 具有重复键但具有不同值的映射?

java - 过滤所有查询的数据

c - 为什么 const int main = 195 导致一个工作程序但没有 const 它以段错误结束?

java - 如何编写抽象主类

java - InputMismatchException 被捕获后导致程序崩溃

java - 线程中出现异常 "main"java.util.InputMismatchException 错误消息

java - 如何在 Java GUI 中指定有效值范围

java - hibernate native 查询错误 : Column not found