Java 如何让扫描仪读取预设变量

Java 如何让扫描仪读取预设变量,java,interface,java.util.scanner,Java,Interface,Java.util.scanner,我正在尝试使用扫描仪获取用户输入,以便将一个新项目添加到我创建的库存列表中,该项目必须具有itemID、itemDesc、price、quantity和reordlevel属性 我如何读取用户输入,将其识别为我创建的变量之一,然后将其添加到列表中 我试过了,但它似乎没有把它们识别为我的变量 任何帮助都将不胜感激。 谢谢 我的尝试: else if (i==1) { StockListInterface.doAddItem(item); System.ou

我正在尝试使用扫描仪获取用户输入,以便将一个新项目添加到我创建的库存列表中,该项目必须具有itemID、itemDesc、price、quantity和reordlevel属性

我如何读取用户输入,将其识别为我创建的变量之一,然后将其添加到列表中

我试过了,但它似乎没有把它们识别为我的变量

任何帮助都将不胜感激。 谢谢

我的尝试:

else if (i==1)
    {
        StockListInterface.doAddItem(item);

        System.out.println("Add New Item");
        System.out.println("****************");

        System.out.println("Enter ID    :>");
        Scanner scanner1 = new Scanner(System.in);
        String itemID = scanner1.nextLine();

        System.out.println("Enter Description    :>");
        Scanner scanner2 = new Scanner(System.in);
        String itemDesc = scanner2.nextLine();

        System.out.println("Enter Price    :>");
        Scanner scanner3 = new Scanner(System.in);
        String price = scanner3.nextLine();

        System.out.println("Enter Quantity    :>");
        Scanner scanner4 = new Scanner(System.in);
        String quantity = scanner4.nextLine();

        System.out.println("Enter Re-Order Level    :>");
        Scanner scanner5 = new Scanner(System.in);
        String reOrderLevel = scanner5.nextLine();

        System.out.println("Enter another? (Y/N)    :>");
    }

您不需要每次输入时都创建新的扫描仪。您可以按如下方式使用先前定义的扫描仪:

else if (i==1)
{
    StockListInterface.doAddItem(item);

    System.out.println("Add New Item");
    System.out.println("****************");

    System.out.println("Enter ID    :>");
    Scanner scanner1 = new Scanner(System.in);
    String itemID = scanner1.nextLine();

    System.out.println("Enter Description    :>");
    String itemDesc = scanner1.nextLine();

    System.out.println("Enter Price    :>");
    String price = scanner1.nextLine();

    System.out.println("Enter Quantity    :>");
    String quantity = scanner1.nextLine();

    System.out.println("Enter Re-Order Level    :>");
    String reOrderLevel = scanner1.nextLine();

    System.out.println("Enter another? (Y/N)    :>");
}
String addAnother = scanner1.nextLine();

你也应该考虑在末尾加一行,以获得“y”或“n”的输入:

else if (i==1)
{
    StockListInterface.doAddItem(item);

    System.out.println("Add New Item");
    System.out.println("****************");

    System.out.println("Enter ID    :>");
    Scanner scanner1 = new Scanner(System.in);
    String itemID = scanner1.nextLine();

    System.out.println("Enter Description    :>");
    String itemDesc = scanner1.nextLine();

    System.out.println("Enter Price    :>");
    String price = scanner1.nextLine();

    System.out.println("Enter Quantity    :>");
    String quantity = scanner1.nextLine();

    System.out.println("Enter Re-Order Level    :>");
    String reOrderLevel = scanner1.nextLine();

    System.out.println("Enter another? (Y/N)    :>");
}
String addAnother = scanner1.nextLine();

您不需要每次读取输入时都创建新的扫描仪,只需使用

Scanner scanner = new Scanner(System.in);
然后每次你想读输入的时候就用

scanner.nextLine()
但是如果你知道你在读一个int等,你可以使用特定的方法,比如

scanner.getInt()

有关更多信息,请参见

您需要在parseInt周围加上try catch,以防格式不正确谢谢。如何使程序识别出这些变量是我要分配给我要添加的项的?假设您有一个
item
对象,该对象具有属性
id
,那么您可以说
item item=new item()
item.setID=itemID
,假设
id
是公共的,或者您可以调用
id
的设置程序。