gpt4 book ai didi

java - 忽略无效条目

转载 作者:行者123 更新时间:2023-12-01 23:52:10 25 4
gpt4 key购买 nike

我的标题并不是最好的,但我不知道如何命名我想要做的事情。不管怎样,我有一个大小写开关......

    switch (input) {
case "A":
Item item = new Item();
System.out.print("Enter a barcode: ");
barCode = scan.nextLine();
item.setBarCode(barCode);

if (store.addItem(barCode)) {
System.out.println(store.stockedItems.get(barCode).getProductName()
+ " has been added to the store's inventory");
}

else {
item.setQuantity(1);
System.out.print("Enter the item's name: ");
productName = scan.nextLine();
productName = productName.toLowerCase();
item.setProductName(productName);
store.stockedItems.put(barCode, item);

System.out.println(store.stockedItems.get(barCode).getProductName()
+ " has been added to the store's inventory");
}
break;
}

这只是一个案例。其作用是,当用户选择 A 将对象添加到我的数据结构中时,它会查找提到的条形码是否已在使用中。

如果是,它只会增加我的数据结构中对象的数量。

如果条形码未使用且检查其有效性后。它将提示用户输入对象的名称,然后继续将其添加到我的数据结构中。

现在问题是在我输入条形码字符串并在其各自的对象类中调用 setter 函数之后:

public void setBarCode(String code) {
if (!code.matches("[0-9]+") || code.length() != 12) {
System.out.println("The barcode entered is not in valid format. Entry ignored.");
} else {
barcode = code;
}
}

此函数只是确保它是数字且长度为 12 个字符。如果不是,我想忽略该条目并从菜单重新开始。我遇到的问题是,即使条形码无效且未设置,程序也会继续询问商品名称。

如何跳过所有这些并再次打印菜单?

最佳答案

有两种策略可以解决这个问题:

  1. 将条形码有效性检查移至 setBarCode 方法之外,并首先执行该测试(或修改 setBarCode 以返回一个 boolean 指示是否条形码有效)。
  2. 修改addItem以返回比boolean信息更丰富的内容,以便您可以区分三种情况:错误的条形码;成功了;失败,因为它需要更多信息。

关于java - 忽略无效条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16176198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com