Это моя самая первая попытка для scala в игровой среде. То, что я действительно хочу достичь, - это принять каждое первое слово из предложений в абзаце.Карта последовательности отображает ошибку: NoSuchElementException: next on empty iterator
Это код, который выдает ошибку
текст mutable.Seq [String]
someText.flatMap(_ split "[.?!]")
.map(_ split "\\s+" filter !_.equals("") head)
.toList
Но проблема на 2-й линии. Он выдает ошибку о том, что:
[NoSuchElementException: next on empty iterator]
По моему скромному мнению, предложение разделенных пробелами не будет пустым, пока SOMETEXT настоящий пункт с большим количеством предложений.
Может ли кто-нибудь уточнить, как это могло произойти и как его исправить?
Вы можете использовать '.head', который является небезопасным. Лучше использовать '.headOption'. – cchantep
@cchantep Спасибо. 'headOption' исправить это. –
Использование 'headOption' устранит проблему, но не сообщит вам, что это было. Он также изменяет тип результата. Подумайте, что произойдет, если одна из входных строк пуста или содержит пробелы. Вы должны научиться использовать отладочную (или распечатывать инструкции) для ответа на подобные вопросы самостоятельно. – Dima