Как прочитать дубль из файла с помощью Scanner без InputMismatchException

Я выполняю простую задачу. Я присваиваю переменным строки, целые числа и двойное число. Переменные назначаются через сканер, читающий текстовый файл. Сканер не может прочитать дубль. Он выдает исключение несоответствия ввода. Я исследовал переполнение стека для ответа и пробовал следующие решения:

Текстовый файл выглядит следующим образом:

Pebbles Flinstone\n

1 2.2\n

This is a line of text\n

Это мой код:

public static void main(String[] args) throws FileNotFoundException {
       File file = new File("input.txt");
       Scanner scanner = new Scanner(file);
       String s1 = scanner.next(); // s1 is assigned to Pebbles
       String s2 = scanner.next(); // s2 is assigned to Flintstone
       int x = scanner.nextInt(); // x is assigned to 1
       double y = scanner.nextDouble(); // y is assigned to 2.2
       scanner.nextLine(); // Advance scanner to beginning of next line
       String s3 = scanner.nextLine();
       scanner.close(); // s3 is assigned to "This is a line of text"
       System.out.print(y);
   }

Как заставить сканер читать 2.2 как двойной? Смена локали не работает. Замена десятичной дроби на запятую тоже не работает.

scanner.nextDouble(), что еще? Проверьте свой ввод и попробуйте ввести строки System.out.println();, чтобы убедиться, что вы ввели его неправильно.
FailingCoder 13.03.2019 18:11

Когда я запускаю это при чтении с консоли, все работает нормально. Я предполагаю, что у вас есть часть файла, которая неправильно отформатирована

GBlodgett 13.03.2019 18:13

удалите \n из вашего входного файла, и он будет работать нормально. чтобы указать новую строку, просто нажмите return (ввод) в вашем файле. не используйте \n

Makeen A. Sabree 13.03.2019 18:49
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
72
0

Другие вопросы по теме