gpt4 book ai didi

java - 输入系统,用户输入对象的数组位置,后跟 # 来指示数量,但它给了我一个错误

转载 作者:行者123 更新时间:2023-12-02 06:50:00 25 4
gpt4 key购买 nike

这是一个小卖部计划!

public void sale() {
if (!ingredients.isEmpty()) {
printFood();
String choice = JOptionPane.showInputDialog("Enter Your choices seperatad by a # to indicate quantity");
String[] choices = choice.split(" ");
String[] ammounts = choice.split("#");
for (int i = 0; i < choices.length; i++) {
int foodPos = (Integer.parseInt(choices[i])) - 1;
int ammount = Integer.parseInt(ammounts[i+1]);
try {
foods.get(foodPos).sale(ammount);
} catch (IndexOutOfBoundsException e) {
System.out.println("Ingredient does not exsist");
}
}
}


}

http://paste.ubuntu.com/5967772/

报错

Exception in thread "main" java.lang.NumberFormatException: For input string: "1#3" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:492) at java.lang.Integer.parseInt(Integer.java:527)

最佳答案

您将同一个字符串拆分两次,但字符串是不可变的,因此您将返回两个不同的数组,而原始字符串保持不变。因此,如果您有如下输入:

1#3 2#4

("") 分割它会产生:

1#3
2#4

稍后您尝试将其解析为整数:

int foodPos = (Integer.parseInt(choices[i])) - 1;

这会引发 NumberFormatException。您需要使用 ("#") 重新分割每个单独的数组元素,而不是源字符串。

关于java - 输入系统,用户输入对象的数组位置,后跟 # 来指示数量,但它给了我一个错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18155825/

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