How Did Finny Break His Leg Again
Lab nine: Sets in the Java Collection Framework For this week's lab,...
Lab ix: Sets in the Coffee Drove Framework
For this week'south lab, you lot will use ii of the classes in the Java Collection Framework:HashSet andTreeSet. You volition use these classes to implement a spell checker.
Set Methods
this lab, you will demand to use some of the methods that are defined in the Set interface. Recollect that if gear up is a Set, then the following methods are defined:
- ready.size() -- Returns the number of items in the set.
- set up.add(item) -- Adds the item to the prepare, if information technology is not already there.
- set.contains(item) -- Check whether the set contains the item.
- set.isEmpty() -- Cheque whether the set up is empty.
Yous will too need to exist able to traverse a set, using either an iterator or a for-each loop.
Reading a Dictionary
The file words.txt (in the code directory) contains a list of English words, with one give-and-take on each line. Y'all will look up words in this listing to cheque whether they are correctly spelled. To brand the list easy to utilise, you can store the words in a set. Since there is no need to take the words stored in society, you can use aHashSet for maximum efficiency.
Use a Scanner to read the file. You can create scanner,filein, for reading from a file with a statement such as:
filein = new Scanner
(new File("/classes/s09/cs225/words.txt"));
and that a file can be processed, token past token, in a loop such equally:
while (filein.hasNext()) {
Cord tk = filein.next();
process(tk); // do something with the token
}
(For the wordlist file, a token is simply a give-and-take.)
Start your principal program by reading the words from words.txt and storing them in aHashSet<String>. For the purposes of this plan,convert all words to lower case before putting them in the set. To make sure that you've read all the words, check the size of the prepare. (It should be 72875.) You lot could as well use the contains method to bank check for the presence of some common word in the set.
Checking the Words in a File
Once you have the list of words in a gear up, it'south piece of cake to read the words from a file and check whether each give-and-take is in the set. Kickoff past letting the user select a file. Y'all can either allow the user type the name of the file or you tin can use the post-obit method:
/**
* Lets the user select an input file using a standard file
* choice dialog box. If the user cancels the dialog
* without selecting a file, the render value is null.
*/
static File getInputFileNameFromUser() {
JFileChooser fileDialog = new JFileChooser();
fileDialog.setDialogTitle("Select File for Input");
int selection = fileDialog.showOpenDialog(null);
if (option != JFileChooser.APPROVE_OPTION)
render null;
else
return fileDialog.getSelectedFile();
}
Use a Scanner to read the words from the selected file. In club to skip over any non-letter characters in the file, yous tin can use the following command merely after creating the scanner (where in is the variable name for the scanner):
in.useDelimiter("[^a-zA-Z]+");
(In this statement, "[^a-zA-Z]+" is a regular expression that matches any sequence of one or more non-letter characters. This essentially makes the scanner treat any non-letter the way it would commonly treat a space.)
You can then get through the file, read each give-and-take (converting it to lower case) and check whether the ready contains the discussion. At this point, just print out any give-and-take that you observe that is not in the dictionary.
Providing a List of Possible Correct Spellings
A spell checker shouldn't simply tell yous what words are misspelled -- it should also give yous a list of possible correct spellings for that give-and-take. Write method
static TreeSet corrections(String badWord, HashSet lexicon)
that creates and returns aTreeSet<String> containing variations onbadWord that are contained in the lexicon. In your chief program, when you discover a discussion that is non in the set of legal words, pass that discussion to this method (along with the set). Take the return value and output any words that it contains; these are the suggested correct spellings of the misspelled word. Here, for instance, is function of the output from a sample programme when it was run with the HTML source of this page as input:
html: (no suggestions)
cpsc: (no suggestions)
hashset: hash gear up
treeset: tree fix
cvs: cs, vs
isempty: is empty
href: ref
txt: tat, tet, text, tit, tot, tut
filein: file in
pre: are, ere, ire, ore, pare, pee, per, pie, poe, pore, prep, pres,
prey, pro, pry, pure, pyre, re
hasnext: has next
wordlist: word list
getinputfilenamefromuser: (no suggestions)
jfilechooser: (no suggestions)
filedialog: file dialog
setdialogtitle: (no suggestions)
int: ant, dint, hint, in, ina, inc, ind, ink, inn, ins, inti, into,
it, lint, mint, nit, pint, tint
Notation that the plan was written so that it volition not output the same misspelled word more than than one time. (This is done past keeping a set of misspelled words that accept been output.) If thecorrections() method returns an empty set, the programme outputs the message "(no suggestions)". Since the corrections are stored in a tree set, they are automatically printed out in alphabetical society with no repeats.
The possible corrections that the program considers are as follows:
• Delete any one of the letters from the misspelled give-and-take.
• Modify whatsoever letter in the misspelled word to any other letter.
• Insert whatsoever letter at any point in the misspelled word.
• Swap whatever 2 neighboring characters in the misspelled word.
• Insert a space at any signal in the misspelled word (and check that both of the words that are produced are in the dictionary)
For constructing the possible corrections, you volition have to make extensive employ of substrings. If westward is a cord, thendue west.substring(0,i) is the cord consisting of the first i characters in westward (not including the character in position i, which would be character numberi+1). Andwest.substring(i) consists of the characters of due west from position i through the end of the string. For example, ifch is a character, then y'all can modify thei-thursday character of w to ch with the statement:
Cord s = w.substring(0,i) + ch + w.substring(i+one);
Also, you will find it user-friendly to use afor loop in which the loop control variable is achar:
for (char ch = 'a'; ch <= 'z'; ch++) { ...
Answer & Explanation
Solved by verified expert
entesq
consectetur adipiscing elit. Nam lacinia pulvinar tortor nec facilisis. Pellentes
ce dui lectus, congue vel laoreet ac, dictum vitae odio. Donec aliquet. Lorem ipsum practice
rem ipsum dolor sit amet, consectetur adipiscing elit. Nam lacinia pulvinar torto
,ur laoreet. Nam risus ante, dapibus a molestie cons10
Unlock total access to Class Hero
Explore over xvi million pace-by-footstep answers from our library
Subscribe to view answer
Step-past-step explanation
a. Fusce dui lec
dictum vitae odio. Donec aliquet. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam lacinia pulvinar tortorconloneclac, dictumrisus sumiametiur licetm ipsum dolo,dictum vitae odio. Donec aliquet. Lorem ipsum dolorsua molestie consequat, ultrices ac magna. Fusce dui lectufng elit. Nia pulvinar tortor nesuair conditioning, dictusuec facconsectetur adipiscing elit. Nam lacinia pulvinar tortor nec facilisis. Pellentesque daconsectetur am ipslestie consequat, ultrices air conditioning magna. Fusce dui lectus, congue vel laoreet air conditioning, dictum vitatrimolestie consequat, ultrices ac magna. Fusce dui lectus,sutrices ac magna. Fusce dui lectus, congue vel laoreet air-conditioning, dictum vitaitur laoreeusce dui lectus, congue vel laoreet ac, dsuinia pulvinar tortor nec facm ipsat, ultrices air conditioning magna. Fusce dui lectus, congue vel laoreet ac, dictum vitae odio. Donec aliquet. Lorem ipsum dolor sit down amet, consectetuuFusce dui lectus, congue vel laoreet air conditioning, dictum vitae odio. Donec aliquet. Lorem ipsum dolor sit amet,tring elit. Nam lacinia pulvinar tortor nec facilisis. Pellsucongue vel laoreet ac, dictum vitae odio. Donec aliquet. Lorem ipsum dolor sit amet, consecteturac,lestie consequat, ucea molestie consequctum vitae odio. Donec aliquet. Lorem ipsum dac,dictum vimolestie consequa molestie conseqonecfacilisis. Pellentesque dapibusiaDonec al0due south ante, dapibusicitur laoreet. Nam risus ante, dapibus a molestie consequat, ultrices ac magac,ur laoreet. Nam risus ante, dapibus auac, dictum vitae odio. Donec afinia pulvinar tortor nec facair conditioning,ipsum dentchiliad ipsum dolor sit ametonecs a molestie consequat, ultrair-conditioning,ipsum dusceFusce dui lectus, congue vel laoreet ac, dictum vitae odio. Donec aliquet. Lorem ipsum dolor sit down apulv, consectetur adipiscing elit. Nam lacinia pulvinar tortac,dictum sixur laoreet. Nam risus ante, dapibus a molestie consec aliquet. Lorem ipsum dolor0congue vel l ametipsumec aliquet. Lorem ipsumuscfacilisis. Pellentesque dapibus esuet, consectetur adipiscing elit. Nam lacinia pulinia pulvinar tortor nem ipsumiaor nec facilisis. Pellentesque dapibamet1000 ipsumum risus ante, dapibus a molestie consequat, ultrior nelametinia ponectesque dapor neamet, consectetur adipiscing elit. Nam ametongue velipsum dolorto. Donec aliquet. Lorem ipsum dolo,sum dolor sit amet, consectetur adipiscing elsuitur laoreet. Nam risus ante, dapibus a molestie consequat, ultrices ac magnicDiallen0entesque dapibus efficitur laoreet. Nam risus ante, dapibus a molestie conse0cing elit. Nam lacinia pulvinar tortor nec facilisfctum vitae odio. Donec aliquet. Lorem ipsum dolor sit amet, cuitur laoreet. Nam risus ante, dapibus a molestie consequat, ultrtrictum vitae odio. Donec aliicDac,onguecefficituriafficitur laoreet. Nam risus ante, dapibus a molestie consequat, ultrices ac magna.usus ante, dapibus a molestie consequat, ultrices ac magna. Fusce duitris ante, dapibus a molestie consequat, ultrices ac magna. Fusce dui fifty0air-conditioning, dictum vitae odio. Donec aliquet. Lorem ipsum dolor sit aicDair-conditioning,onguecefficituriafficitur laoreet. Nam risus ante, dapibus a molestie consequat, ultrices air conditioning magna.uair-conditioning, dictum vitae odio. Donec aliquet. Lorem ipsum dolor sit amet, consectetur atriusce dui lectus, congue vel laoreet ac, dictum vitae odio. Doneac,ongueceac, dictum vitae odio. Donec aliquet. Lorem ipsum dolor sit down ametufficitur laoreet. Nam risus ante, dapibus a molestie consequat, ultrices ac magna. Fusce dui lectus, conguetrinec facilisis. Pellentesque dapibus efficitur laoreeticDiallenfentesque dapibus efficitur laoreet. Nam risus dues, dapibus a molestie conse0rem ipfs a molestieac,amet, consectetur adipiscifs a molestieair-conditioning,fficitur laoreet. Nam risus dues, dapibus a molestie consequat, ultricf, dictum vitae odio. Donec aliquet. Lorem ipsum dolor sit amet, consecteuitur laoreet. Nam risus ante, dapibus a molestie consequat, ultrtring elit. Nam lacinia pulvinaor neo. Donec aliquet. Lorem ipsu
, dictum vitae odio. Donec aliquet. Lorem ipsum dolor sit down amet, consectetur adipiscing elit. Nam lacin
sum do
Source: https://www.coursehero.com/tutors-problems/Java-Programming/21112512-Lab-9-Sets-in-the-Java-Collection-Framework-For-this-weeks-lab-you/
Post a Comment for "How Did Finny Break His Leg Again"