По мотивам этой задачи родился вопрос. Не нашел в документации метод (ни в BufferedReader, ни в Scanner), позволяющий как бы возвращаться назад. Это принципиально невозможно? (типа работа с потоком и все такое), и единственный вариант это все сохранять куда-нибудь, а потом пользоваться. Или все-таки какой-нибудь метод существует.