Java扫描器-为什么会出现此错误?
我对java并不陌生,但我不明白为什么会出现这种扫描错误。代码编译得很好,但我得到以下运行时错误 在线程main java.util.InputMismatchException中输入项目编号:Exception 位于java.util.Scanner.throwForScanner.java:840 位于java.util.Scanner.nextScanner.java:1461 位于java.util.Scanner.nextIntScanner.java:2091 位于java.util.Scanner.nextIntScanner.java:2050 在TestInvoice.getValuesTestInvoice.java:3Java扫描器-为什么会出现此错误?,java,java.util.scanner,Java,Java.util.scanner,我对java并不陌生,但我不明白为什么会出现这种扫描错误。代码编译得很好,但我得到以下运行时错误 在线程main java.util.InputMismatchException中输入项目编号:Exception 位于java.util.Scanner.throwForScanner.java:840 位于java.util.Scanner.nextScanner.java:1461 位于java.util.Scanner.nextIntScanner.java:2091 位于java.util
import java.util.Scanner;
public class TestInvoice {
public static void main(String [] args)
{
/* create objects */
Invoice item1 = new Invoice();
Invoice item2 = new Invoice();
Invoice item3 = new Invoice();
/* get values */
getValues(item1);
getValues(item2);
getValues(item3);
/* print objects */
System.out.println(item1.toString() + "\n");
System.out.println(item2.toString() + "\n");
System.out.println(item3.toString() + "\n");
}
private static void getValues(Invoice invoice)
{
int number;
String name;
int quantity;
double price;
/* get values from user */
Scanner scanner = new Scanner("System.in");
System.out.print("Enter item number: ");
number = scanner.nextInt();
System.out.print("Enter item name: ");
name = scanner.next();
System.out.print("Enter quantity: ");
quantity = scanner.nextInt();
System.out.print("Enter item price: ");
price = scanner.nextDouble();
System.out.println();
/* set the values */
invoice.setItemNumber(number);
invoice.setItemName(name);
invoice.setItemQuantity(quantity);
invoice.setItemPrice(price);
}
}
也许改变
Scanner scanner = new Scanner("System.in");
到
删除System.in周围的引号。
Scanner scanner = new Scanner(System.in);