Exception in thread "main" java.util.InputMismatchException

I need help with one exercise in java, I am stuck with this error, maybe for 2 hours. Any help would be great.

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);
    }

}

and

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());
    }

}

I cannot enter the string "imer" or int "cenar" in the variable "proizvodi" from the class Proizvod.

Any help? why am i getting this error? Thanks!

+4
source share
2 answers

This is an exception thrown by the scanner to indicate that the received token does not match the pattern for the expected type or that the token is out of range.

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

You need to put an int before you get imer or cenar:

n=input.nextInt();

, , , , , imer cenar.

+1

All Articles