我目前正在使用java在程序中苦苦挣扎。该计划目前情况良好。但是,我犯了一个小错误。对于案例1(添加项目),我打算在制造商中用空格键入字符串。发生在Eclipse中的错误这样通过在空间键入Java。 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)
我做了很多的研究对这个问题,比如增加使用in.nextLine()
代替in.next()
,错误仍然走了出来。有没有人可以为我指出问题并解决问题?非常感谢你!!
这是我的代码:
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;
}
}
}
}
这是另一个文件连接到第一个:
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;
}
}