Если Scanner
не ждал, пока вы введете другой -
, то он ошибочно предположил бы, что вы закончили ввод ввода.
Я имею в виду, что Scanner
должен ждать, пока вы введете -
, потому что он не может узнать длину следующего ввода.
Итак, если пользовательхотел набрать A-B-CDE
, и вы остановились, чтобы сделать глоток кофе на C
, он не получил бы правильного ввода.(Вы ожидаете [ A, B, CDE ]
, но он получит [ A, B, C ]
)
Когда вы передаете его в полном String
, Scanner
знает, где находится конец ввода, и не нужно ждатьдля другого разделителя.
Как бы я это сделал:
Scanner stdin = new Scanner(System.in);
String input = stdin.nextLine();
String[] splitInput = input.split("-", -1);
Теперь у вас будет массив Strings
, содержащий данные между всеми -
с.
Вот ссылка на документацию String.split()
для вашего удовольствия от чтения.