это код, который я пытаюсь исправить.
while (check){
System.out.print("What you want to buy? (choose by #, or by Brand, or by ID): ");
String choice = scan.next();
for (int i = 0; i <= productList.getListOfProducts().size(); i++) {
if (choice.equals(productList.getListOfProducts().get(i).getBrand())
|| choice.equals(productList.getListOfProducts().get(i).getProductSerialNumber())
|| Integer.parseInt(choice) == i){
...}
break;
}
Он хорошо работает, если я ввожу с клавиатуры цифры c или аналогичное правильное значение, которое равно productList.getListOfProducts () .get (0) .getBrand () или productList.getListOfProducts (). get (0) .getProductSerialNumber (). НО, если l oop переходит на второй шаг, он дает мне эту ошибку:
Исключение в потоке «main» java .lang.NumberFormatException: для входной строки: «AA00004» в java. base / java .lang.NumberFormatException.forInputString (NumberFormatException. java: 68) в java .base / java .lang.Integer.parseInt (Integer. java: 652) в java. base / java .lang.Integer.parseInt (Integer. java: 770) в Driver.main (Driver. java: 54)
Как я понимаю, когда проверка в IF достигает этой части (Integer.parseInt (choice) == i) Choice становится int для остальной части l oop. Что я могу сделать, чтобы снова возвращать его в формат String для каждого нового шага. Спасибо!