0 просмотров

Серия Week Of Outfits: неделя безжалостных нарядов и веганской красоты с Джессикой Салазар из всех там, август

Лабораторная работа 9: Наборы в Java Collection Framework Для лабораторной работы на этой неделе.

Лабораторная работа 9: Наборы в Java Collection Framework

В лабораторной работе на этой неделе вы будете использовать два класса Java Collection Framework: Хэшсет а также Набор деревьев. Вы будете использовать эти классы для реализации проверки орфографии.

Установить методы

В этом практическом занятии вам потребуется использовать некоторые методы, определенные в интерфейсе Set. Напомним, что если set является Set, то определены следующие методы:

  • установить.размер() — Возвращает количество элементов в наборе.
  • set.add (элемент) — Добавляет элемент в набор, если его там еще нет.
  • set.contains (элемент) — Проверить, содержит ли набор элемент.
  • set.isEmpty() — Проверить, не пусто ли множество.

Вам также нужно будет иметь возможность перемещаться по набору, используя либо итератор, либо цикл for-each.

Чтение словаря

Файл words.txt (в каталоге кода) содержит список английских слов, по одному слову в каждой строке. Вы будете искать слова в этом списке, чтобы проверить, правильно ли они написаны. Чтобы упростить использование списка, вы можете хранить слова в наборе.Поскольку нет необходимости хранить слова по порядку, вы можете использовать Хэшсет для максимальной эффективности.

Используйте сканер для чтения файла. Вы можете создать сканер, подшивать, для чтения из файла с оператором, например:

filein = новый сканер

и что файл может обрабатываться токен за токеном в цикле, таком как:

Строка tk = filein.next();

процесс(ТК); // делаем что-то с токеном

(Для файла списка слов токен — это просто слово.)

Запустите основную программу, прочитав слова из words.txt и сохранив их в Хэшсет . Для целей этой программы перевести все слова в нижний регистр прежде чем положить их в набор. Чтобы убедиться, что вы прочитали все слова, проверьте размер набора. (Должно быть 72875.) Вы также можете использовать метод contains для проверки наличия какого-либо общего слова в наборе.

Проверка слов в файле

Когда у вас есть список слов в наборе, легко прочитать слова из файла и проверить, входит ли каждое слово в набор. Начните с предоставления пользователю возможности выбрать файл. Вы можете либо позволить пользователю ввести имя файла, либо использовать следующий метод:

* Позволяет пользователю выбрать входной файл, используя стандартный файл

* диалоговое окно выбора. Если пользователь отменяет диалог

* без выбора файла возвращается значение null.

статический файл getInputFileNameFromUser() <

JFileChooser fileDialog = новый JFileChooser();

fileDialog.setDialogTitle("Выберите файл для ввода");

опция int = fileDialog.showOpenDialog (null);

если (опция!= JFileChooser.APPROVE_OPTION)

Используйте сканер, чтобы прочитать слова из выбранного файла. Чтобы пропустить любые небуквенные символы в файле, вы можете использовать следующую команду сразу после создания сканера (где in — имя переменной для сканера):

(В этом утверждении "[^a-zA-Z]+" является регулярным выражением, которое соответствует любой последовательности из одного или нескольких небуквенных символов. По сути, это заставляет сканер обрабатывать любые небуквенные символы так же, как он обычно обрабатывает пространство.)

Затем вы можете просмотреть файл, прочитать каждое слово (преобразовав его в нижний регистр) и проверить, содержит ли набор это слово. На этом этапе просто распечатайте любое найденное вами слово, которого нет в словаре.

Предоставление списка возможных правильных написаний

Средство проверки орфографии не должно просто сообщать вам, в каких словах написаны ошибки, — оно также должно давать вам список возможных вариантов правильного написания этого слова. Метод записи

статические исправления TreeSet (строка badWord, словарь HashSet)

который создает и возвращает Набор деревьев содержащие вариации на плохое слово которые содержатся в словаре. В вашей основной программе, когда вы найдете слово, которого нет в наборе допустимых слов, передайте это слово этому методу (вместе с набором). Возьмите возвращаемое значение и выведите все содержащиеся в нем слова; это предлагаемые правильные варианты написания слова с ошибкой. Вот, например, часть вывода примера программы, когда она была запущена с исходным HTML-кодом этой страницы в качестве входных данных:

html: (без предложений)

cpsc: (нет предложений)

hashset: набор хэшей

набор деревьев: набор деревьев

пусто: пусто

txt: тат, тет, текст, синица, малыш, тут

pre: are, ere, ire, ore, pare, pee, per, pie, poe, pore, prep, pres,

добыча, про, подглядывать, чистый, погребальный, ре

имеетследующий: есть следующий

список слов: список слов

getinputfilenamefromuser: (нет предложений)

jfilechooser: (нет предложений)

filedialog: файловый диалог

setdialogtitle: (нет предложений)

int: муравей, вмятина, намек, в, ина, вкл, инд, чернила, гостиница, инс, инти, в,

это, ворс, мята, гнида, пинта, оттенок

Обратите внимание, что программа была написана таким образом, что она не будет выводить одно и то же слово с ошибкой более одного раза. (Это делается путем сохранения набора слов с ошибками, которые были выведены.) Если исправления() метод возвращает пустой набор, программа выводит сообщение "(нет предложений)". Поскольку исправления хранятся в виде дерева, они автоматически распечатываются в алфавитном порядке без повторов.

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

• Удалите любую букву из слова с ошибкой.

• Замените любую букву в слове с ошибкой на любую другую букву.

• Вставьте любую букву в любом месте слова с ошибкой.

• Поменяйте местами любые два соседних символа в слове с ошибкой.

• Вставьте пробел в любом месте слова с ошибкой (и убедитесь, что оба полученных слова есть в словаре).

Для построения возможных исправлений вам придется широко использовать подстроки. Если w — строка, то w.substring(0,i) это строка, состоящая из первых i символов в слове w (не включая символ в позиции i, который был бы номером символа я+1). А также w.подстрока (я) состоит из символов w от позиции i до конца строки. Например, если ч является символом, то вы можете изменить i-й символ w в ch с утверждением:

Строка s = w.substring(0,i) + ch + w.substring(i+1);

Также вам будет удобно использовать за цикл, в котором управляющая переменная цикла является уголь:

consectetur adipiscing elit. Nam lacinia pulvinar tortor nec facilisis. Пеллентес

ce dui lectus, congue vel laoreet ac, dictum vitae odio. Донец Аликет. Лорем ипсум до

rem ipsum dolor sit amet, consectetur adipiscing elit. Nam lacinia pulvinar torto

,твой лаорет. Nam risus ante, dapibus a molestie минусыИкс

Разблокируйте полный доступ к Course Hero

Изучите более 16 миллионов пошаговых ответов из нашей библиотеки.

а. Fusce dui lec

dictum vitae odio. Донец Аликет. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam lacinia pulvinar tortor con loneclac, dictum risus sum i ametiurlice t mipsum dolo, dictum vitae odio. Донец Аликет. Lorem ipsum dolor su a molestie conequat, ultrices ac magna. Fusce dui lectu f ng elit. N tesque dapibus efficitur lao ia pulvinar tortor ne su ac, dictu su ec fac consectetur adipiscing elit. Nam lacinia pulvinar tortor nec facilisis. Pellentesque da consectetur am ips lestie consequat, ultrices ac magna.Fusce dui lectus, congue vel laoreet ac, dictum vita tri molestie consequat, ultrices ac magna. Fusce dui lectus, sutrices ac magna. Fusce dui lectus, congue vel laoreet ac, dictum vita itur laoree usce dui lectus, congue vel laoreet ac, dsuinia pulvinar tortor nec fac m ips at, ultrices ac magna. Fusce dui lectus, congue vel laoreet ac, dictum vitae odio. Донец Аликет. Lorem ipsum dolor sit amet, consectetu u Fusce dui lectus, congue vel laoreet ac, dictum vitae odio. Донец Аликет. Lorem ipsum dolor sit amet, tri ng elit. Nam lacinia pulvinar tortor nec facilisis. Pell su congue vel laoreet ac, dictum vitae odio. Донец Аликет. Lorem ipsum dolor sit amet, consectetur ac, lestie consequat, uce a molestie conseq u ctum vitae odio. Донец Аликет. Lorem ipsum dac, dictum vi molestie consequ a molestie conseq onec facilisis. Pellentesque dapibus ia Donec al 0 s ante, dapibus ic itur laoreet. Nam risus ante, dapibus a molestie consequat, ultrices ac mag ac, ur laoreet. Nam risus ante, dapibus a u ac, dictum vitae odio. Donec finia pulvinar tortor nec facac, ipsum d ent mipsum dolor sit amet onec s a molestie consequat, ultrac, ipsum dusce Fusce dui lectus, congue vel laoreet ac, dictum vitae odio. Донец Аликет. Lorem ipsum dolor sit a pulv, consectetur adipiscing elit. Nam lacinia pulvinar tort ac, dictum vi ur laoreet. Nam risus ante, dapibus a molestie cons ec aliquet. Lorem ipsum dolor 0 congue vel l amet ipsum ec aliquet. Lorem ipsum usc facilisis. Pellentesque dapibus e su et, consectetur adipiscing elit. Nam lacinia pulinia pulvinar tortor ne mipsum ia или nec facilisis. Pellentesque dapib amet mipsum um risus ante, dapibus a molestie consequat, ultri or nelametinia ponectesque dap or ne amet, consectetur adipiscing elit. Nam amet ongue vel ipsum dolor to. Донец Аликет. Lorem ipsum dolo, sum dolor sit amet, consectetur adipiscing el su itur laoreet.Nam risus ante, dapibus a molestie consequat, ultrices ac magnic Diallen 0 entesque dapibus efficitur laoreet. Nam risus ante, dapibus a molestie conse 0 cing elit. Nam lacinia pulvinar tortor nec facilis f ctum vitae odio. Донец Аликет. Lorem ipsum dolor sit amet, c u itur laoreet. Nam risus ante, dapibus a molestie consequat, ultr tri ctum vitae odio. Donec aliic Dac, ongue ce fficitur ia fficitur laoreet. Nam risus ante, dapibus a molestie consequat, ultrices ac magna. u sus ante, dapibus a molestie consequat, ultrices ac magna. Fusce dui tri s ante, dapibus a molestie consequat, ultrices ac magna. Fusce dui l 0 ac, dictum vitae odio. Донец Аликет. Lorem ipsum dolor sit a ic Dac, ongue ce fficitur ia fficitur laoreet. Nam risus ante, dapibus a molestie consequat, ultrices ac magna. u ac, dictum vitae odio. Донец Аликет. Lorem ipsum dolor sit amet, consectetur a tri usce dui lectus, congue vel laoreet ac, dictum vitae odio. Done ac, ongue ce ac, dictum vitae odio. Донец Аликет. Lorem ipsum dolor sit amet u fficitur laoreet. Nam risus ante, dapibus a molestie consequat, ultrices ac magna. Fusce dui lectus, congue tri nec facilisis. Pellentesque dapibus efficitur laoreet ic D iallen f entesque dapibus efficitur laoreet. Namrisus ante, dapibus a molestie conse 0 rem ip f s a molestie ac, amet, consectetur adipiscifs a molestie ac, fficitur laoreet. Nam risus ante, dapibus a molestie consequat, ultric f , dictum vitae odio. Донец Аликет. Lorem ipsum dolor sit amet, consecte u itur laoreet. Namrisus ante, dapibus a molestie consequat, ultr tri ng elit. Nam lacinia pulvina или ne o. Донец Аликет. Лорем ипсу

, dictum vitae odio. Донец Аликет. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Нам Лачин

0 0 голоса
Рейтинг статьи
Ссылка на основную публикацию
Статьи c упоминанием слов:
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
Adblock
detector