Вот моя основная цель: преобразовать программу, которая использует сканер и клавиатуру в качестве входных данных, в программу, которая использует аргументы сканера и java в качестве входных данных. Это будет сделано программно для различных программ, поэтому я хотел бы внести как можно меньше и как можно меньше изменений в саму программу. Я могу сделать это, изменив Scanner scanner = new Scanner(System.in);
на Scanner scanner = new Scanner(args[0]);
.
Теперь я могу разделить каждый аргумент пробелом в args[0]
, и программа работает нормально, но ТОЛЬКО если она не использует scanner.nextLine()
. Как только используется scan.nextLine(), сканер поглощает всю строку и ломает программу.
Я не могу найти обходной путь, не меняя структуру программы вместе (удаляя все scanner.nextLine()
s. Может быть, есть какой-то символ/последовательность, которая остановит scan.nextLine(), или он всегда будет обрабатывать всю строку?
Спасибо
Редактировать: Моя первоначальная идея состояла в том, чтобы дать сканеру массив строк и пройти через него, индексируя по индексу, независимо от того, какой метод использовался (next
, nextInt
, nextLine
). Возможно ли это?