Посмотрите описание API вашего исключения.
Класс InputMismatchException :
Брошенный сканером, чтобы указать, что полученный токен не соответствует шаблону для ожидаемого типа, или что токен находится вне диапазона для ожидаемого типа
Скорее всего, вы не вводите ожидаемые данные; во всяком случае, «следующий» элемент сканера в какой-то момент не является двойным.
Глядя на скриншот, вы, похоже, правильно используете API. Я подозреваю, что поддержка встроенной консоли Eclipse делает не совсем то, что ожидает сканер. Попробуйте изменить первую строку вашего метода на:
Scanner villy = new Scanner("23.53\n42.76\n");
Это должно быть функционально идентично тому, что вы получите из входного потока; если это работает, значит, проблема в вводе Eclipse.
Одна из попыток, которая в целом всегда является хорошей идеей, заключается в явном указании кодировки входного потока. Вы хотите отправить символов , но на самом деле вы отправляете байтов . Если Eclipse использует какую-то необычную кодировку символов, а сканер угадывает другую по умолчанию, вы столкнетесь с проблемами. Указание фактической кодировки в конструкторе сканера исключит эту возможность.
Другой вариант заключается в том, что языковой стандарт, с которым работает Java, фактически использует запятую в качестве десятичного разделителя. Если это так, то Сканер прав, вы не указали двойное значение правильно (хотя это также должно произойти с ошибкой в примере на основе строк).