Использование функционального программирования для поиска пользовательского ввода в файле - PullRequest
0 голосов
/ 17 мая 2018

Полное игнорирование - это домашнее задание, поэтому я не прошу прямых ответов, просто хочу помочь с решением проблемы. Нас просто очень грубо научили использовать функциональное программирование, и я хотел бы применить его к своему текущему заданию.

Мое назначение - сравнивать слова, введенные пользователем, со списком допустимых слов, заданных в файле, где каждая строка в файле является одним действительным словом. Я думал о том, чтобы создать поток из файла, а затем отфильтровать каждое слово из файла, основываясь на том, было ли это слово введено пользователем (пользователь может ввести несколько слов).

Я не уверен, как именно решить эту проблему, и хотел бы найти способ помочь обдумать проблему или ресурсы, которые могли бы помочь.

Ответы [ 3 ]

0 голосов
/ 17 мая 2018

Сначала вы должны загрузить правильные слова и сохранить их в своей переменной.(Предпочитайте Set<String> для хранения, потому что проверка contains выполняется быстро.)

Set<String> validWords = File.lines(your file).collect(Collectors.toSet());

Затем вы можете проверить правильность ввода слова, используя Set.contains() метод

validWords.contains(XXX);
0 голосов
/ 17 мая 2018

Вы можете выполнить следующие руководящие шаги:

  1. Прочитать ввод пользователя
  2. Разделить его на слова и сохранить их в Set
  3. Прочитатьфайл как Stream с Files.lines()
  4. Используйте Stream.filter() для выбора всех слов, которые встречаются в Set (Подсказка: используйте Set.contains())
  5. Сделайте что-нибудь с этими остаткамиценности.Например, подсчитать их / или собрать их в DataStructure и так далее.

Альтернативно, если вы хотите просто проверить, что пользовательский ввод содержится в Stream, вы можете использовать Stream.anyMatch()

0 голосов
/ 17 мая 2018

Ну ... все это зависит от того, какой язык вы используете. Если бы я использовал JS, я бы либо удостоверился, что файл сохранил слова в виде массива (или преобразовал их в массив), а затем использовал .contains (), чтобы проверить, есть ли слово.

Надеюсь, это поможет!

...