Не понимаю, почему не работает ввод строки purchName
? Если поменять местами 20 и 21 строку местами, то считывает число, и когда доходит до ввода строки, выдаёт ошибку. В чём проблема?
ArrayList<Integer> balance = new ArrayList<>();
ArrayList<String> purchase = new ArrayList<>();
System.out.println("Введите ваш бюджет на месяц: ");
int budget = in.nextInt();
System.out.println("У вас есть " + budget + " до конца месяца.");
for (int i = 0; i <= budget; i--) { // circle that responds for re-entering purchase
System.out.println("Name of Purchase And its Price: ");
String purchName = (String) System.in.read();
int purchPrice = in.nextInt(); // ошибка возникает тут
System.out.println("Thanks!");
balance.add(purchPrice);
purchase.add(purchName);
int value = budget - purchPrice;
System.out.println("If you want continue write 1");
System.out.println("See you purchase 2");
}
}
Вывод:
Введите ваш бюджет на месяц:
20
У вас есть 20 до конца месяца.
Name of Purchase And its Price:
qwer
Exception in thread "main" java.util.InputMismatchException
at java.base/java.util.Scanner.throwFor(Scanner.java:939)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
at com.begin.exampleTwo.main(exampleTwo.java:23)
Process finished with exit code 1
Тот код, что ты привёл, в принципе не компилируется из-за String purchName = (String) System.in.read();
, потому что read
возвращает int
.
Соответственно, исполняется у тебя какая-то последняя валидная старая версия, которая выдаёт ошибку на nextInt
(который у тебя судя по всему раньше стоял сразу после Name of Purchase And its Price:
Замени (String) System.in.read()
на in.nextLine()
.
import java.util.Scanner;
class Scratch {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("text");
String text = s.nextLine();
System.out.println("integer");
int i = s.nextInt();
System.out.println(text+", "+i);
}
}
Выдаёт
text
some text
integer
12
some text, 12
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Для List коллекции на такой случай есть расширенный итератор ListIterator
Каким образом можно обфусцировать api-key от firebase в android приложении на javaApi-ключ лежит в google-services
При попытке получить connection через DriverManager получал SQLExceptionЭто все на tomcat