Ich kämpfe derzeit auf ein Programm mit Java. Das Programm ist im Moment gut. Allerdings habe ich den kleinen Fehler. Für Fall 1 (Artikel hinzufügen) habe ich versucht, die Zeichenfolge mit Leerzeichen im Hersteller einzugeben. Das tritt der Fehler in Eclipse ähnlicheJava durch Eingabe in das Leerzeichen. InputMismatchException
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextDouble(Unknown Source)
at ass1.inventory.addItem(inventory.java:44)
at ass1.inventory.run(inventory.java:28)
at ass1.inventory.main(inventory.java:11)
ich eine Menge Forschung für dieses Problem haben, wie das Hinzufügen Verwenden in.nextLine()
statt in.next()
, der Fehler kam noch heraus. Kann jemand das Problem für mich aufzeigen und das Problem beheben? Vielen Dank!!
Dies ist mein Code:
import java.util.Scanner;
public class inventory {
private static item[] inventory;
static Scanner scanner = new Scanner(System.in);
private static int noOfItems;
public static void main(String[] args) {
noOfItems=0;
// TODO Auto-generated method stub
inventory=new item[5];
run();
}
public static int displayMenu()
{
System.out.println("1.Add a product");
System.out.println("2.Display a product");
System.out.println("3.Quit");
int i=scanner.nextInt();
return i;
}
public static void run()
{
while(true)
{
int i=displayMenu();
switch(i)
{
case 1:addItem();
break;
case 2:findItem();
break;
case 3:return;
default:System.out.println("Invalid choice");
}
}
}
public static void addItem()
{
System.out.print("Enter Item name:");
String item_name=scanner.next();
System.out.print("Enter the manufacturer:");
String manufacturer=scanner.next();
System.out.print("Enter price:");
double price=scanner.nextDouble();
item b=new item(item_name,manufacturer,price);
if(noOfItems==inventory.length)
System.out.println("Array is full");
else
{
inventory[noOfItems++]=b;
System.out.println("Item added successfully");
}
}
public static void findItem()
{
System.out.print("Enter item name:");
String item_name=scanner.next();
for(int i=0; i<noOfItems; i++)
{
if(item_name(inventory[i].getItem_name()))
{
System.out.println("Item found:");
System.out.print(inventory[i]+"\n");
return;
}
}
}
}
Dies ist eine weitere Datei zunächst eine Verbindung:
public class item {
private String item_name;
private String manufacturer;
private double price;
//To initialise the state of the object
public item(String item_name,String manufacturer,double price)
{
this.item_name=item_name;
this.manufacturer=manufacturer;
this.price=price;
}
//Reader methods i.e behavior methods
public String getItem_name()
{
return item_name;
}
public String getManufacturer()
{
return manufacturer;
}
public double getPrice()
{
return price;
}
//Writer methods or setter methods public void setTitle(String item_name)
{
this.item_name=item_name;
}
public void setManufact(String manufacturer)
{
this.manufacturer=manufacturer;
}
public void setPrice(double price)
{
if(price < 0)
System.out.println("Price cannot be negative");
else
this.price=price;
}
public String toString()
{
return "Item name:"+item_name+"\nManufacturer:"+manufacturer+"\nPrice:"+price;
}
}