Моя программа считывает данные из файла, который содержит целые и действительные числа, и назначает числа в 2 разных массива. Он читает все нормально, пока я не добавлю символы в файл данных, которые должны действовать как пункты меню. Вот пример.
127856 55.55
569334 100.50
987104 2.33
222382 5000.00
321333 999.99
q
q относится к пункту меню, который в значительной степени завершает программу.
char choice = sc.next().charAt(0);
switch (choice) {
case 'q':
case 'Q':
printAccts(acctNum, balance, numaccts);
notDone = false;
break;
Ошибка q в конце файла данных вызывает ошибку. Компилятор говорит мне, что IntputMismatchException происходит в две строки. Здесь, где acctnum и balance - это массивы, а max - это просто постоянное целое число.
int numaccts = readAccts(acctNum, balance, MAX);
И на линии, которая находится между ** **.
public static int readAccts(int[] acctNum, double[] balance, int maxAccts)
throws Exception {
Scanner sc2 = new Scanner(new File("bankdata.txt"));
int count = 0;
while (sc2.hasNext() && count < maxAccts) {
**acctNum[count] = sc2.nextInt();**
balance[count] = sc2.nextDouble();
count++;
}
Я не думаю, что когда-либо сталкивался с этой проблемой раньше, и я не знаю, какие методы я мог бы использовать, чтобы ее исправить. Есть идеи?
РЕДАКТИРОВАТЬ первый блок кода и второй блок кода в различных методах