Our Services

Get 15% Discount on your First Order

[rank_math_breadcrumb]

For this project, you are going to write a program to find the anagrams in a given dictionary for a given word. If two words have the same letters but in different order, they are called anagrams. For

For this project, you are going to write a program to find the anagrams in a given dictionary for a given word. If two words have the same letters but in different order, they are called anagrams. For example, “listen” and “silent” are a pair of anagrams.

**JAVA**

First let’s focus on “LetterInventory.java”.

Its purpose is to compute the canonical “sorted letter form” for a given word.

1. Implement the constructor, which takes the String input word. You can assume that the input word contains only valid letters (e.g. no punctuation or blanks), but it may contain letters in different cases.

2. Implement the method: public String getCanonical() It should return the canonical “sorted letter form” for the input word (given in the constructor). It should use only lower cases. For example, if the given word is “AliBaba”, then this method should return “aaabbil”.

****I have already completed all of the above tasks I am struggling with the next part****

**below is the code I have for LetterInventory.java**

import java.util.*;

public class LetterInventory {

   private String input; 

    //stores the original word. 

    public LetterInventory(String input) {        this.input = input;    }    //uses an array of chars to hold word and sorts it into alphabetical order.    //displays it in lower case.    public String getCanonical() {        input = input.toLowerCase(); // converting input to lower case        char [] word = input.toCharArray();        Arrays.sort(word);        String sorted = new String (word);        return sorted; 

    }}

*** this is where i am stuck ***

Once “LetterInventory.java” is working as expected, we can now focus on “AnagramFinder.java”. It will read an input “dictionary” file, which contains quite many words, to build a map. The “key” for the map is a word’s canonical form, the “value” for the map will be all the words in the given dictionary that share the same canonical form. For example, if both “listen” and “silent” are in the dictionary, one entry in the map would have key as “eilnst” and value as an ArrayList of words “listen” and “silent”.

Implement the constructor, which takes in the input dictionary file and build the map. You can assume the words in the dictionary contain only valid letters. You should take advantage of “LetterInventory”.

3. Now implement the method: public void printAnagrams(String word) It should try to search the anagrams for the given word in the map. Again, you can assume the input word contains only valid letters, and you should take advantage of “LetterInventory”.

Print out any anagrams found. For now, don’t worry about the case where the input word is the same as the word inside the dictionary, just print them out.

Here is some sample print out:

Your input is: silent. Found anagrams: listen, silent, tinsel.

Your input is: AliBaba. Sorry, didn’t find any anagrams.

A sample main method is already written for you to test various functionalities with some sample input words.

*** Below is the shell for the main method ***

import java.io.*;import java.util.*;

public class AnagramFinder {    public static void main(String[] args) throws FileNotFoundException {        String[] originals = new String[] {            “realfun”,            “mias”,            “EVIL”,            “unable”,            “Silent”,            “AliBaba”        };

       for(String original: originals) {            LetterInventory inv = new LetterInventory(original);            System.out.println(“Original: ” + original + “, Canonical: ” + inv.getCanonical());        }

       System.out.println(“\n”);

       File f = new File(“HW_sample_dict.txt”); 

        AnagramFinder finder = new AnagramFinder(f);

       for(String original: originals) {            finder.printAnagrams(original);        }    }

   public AnagramFinder(File f) throws FileNotFoundException {       //TODO implement      }

   public void printAnagrams(String word) {        //TODO implement    }

   public void printAnagrams2(String word) {        // Extra Credit: optional to implement    }} 

** can leave out extra credit part i just need help with the first 2 methods in the main file **

** the dict.txt is 400 pages long so I did not include it (the file just contains thousands of words) **

Share This Post

Email
WhatsApp
Facebook
Twitter
LinkedIn
Pinterest
Reddit

Order a Similar Paper and get 15% Discount on your First Order

Related Questions

Please follow the steps provide in unt_fibonacci_assignment.pdfDownload unt_fibonacci_assignment.pdf This assignment is designed to show one difference between higher level language (python ) vs lowe

Please follow the steps provide in  unt_fibonacci_assignment.pdfDownload unt_fibonacci_assignment.pdf This assignment is designed to show one difference between higher level language (python ) vs lower level language (c) Please test the code on cell machine : CELL18-CSE.ENG.UNT.EDU Have fun and enjoy coding, thinking and learning

Please follow the steps provide in unt_fibonacci_assignment.pdfDownload unt_fibonacci_assignment.pdf This assignment is designed to show one difference between higher level language (python ) vs lowe

Please follow the steps provide in  unt_fibonacci_assignment.pdfDownload unt_fibonacci_assignment.pdf This assignment is designed to show one difference between higher level language (python ) vs lower level language (c) Please test the code on cell machine : CELL18-CSE.ENG.UNT.EDU Have fun and enjoy coding, thinking and learning

This assignment will give you an opportunity to learn more about secondary storage technologies, communications, and networks. Before working on this assignment, you will need to complete the Unit IV

This assignment will give you an opportunity to learn more about secondary storage technologies, communications, and networks. Before working on this assignment, you will need to complete the Unit IV Knowledge Check. Reflect on what you have learned about secondary storage, communications, and network security in this unit. Address the

In this journal, you will embark on a journey of exploration into emerging technologies that intrigue you; be it virtual reality, wearables, IoT, or any other fascinating field. You will research a ch

In this journal, you will embark on a journey of exploration into emerging technologies that intrigue you; be it virtual reality, wearables, IoT, or any other fascinating field. You will research a chosen technology and reflect on your learning journey, sharing insights gained, challenges faced, and areas primed for growth.

Database Detective This assignment measures your mastery of ULOs 3.4, 4.1, and 4.2. Before working on this assignment, you will need to complete the Unit VI Activity: Access 2021 – Chapter 2 – Wor

Database Detective  This assignment measures your mastery of ULOs 3.4, 4.1, and 4.2. Before working on this assignment, you will need to complete the Unit VI Activity: Access 2021 – Chapter 2 – Working with Tables in the SIMNet lab.  Download and complete the Unit VI Assignment Poole’s Nursery Template. Complete

This PowerPoint Presentation will measure your understanding of the concepts covered in this course to this point. For this assignment, you are going to create a PowerPoint presentation that would

This PowerPoint Presentation will measure your understanding of the concepts covered in this course to this point. For this assignment, you are going to create a PowerPoint presentation that would be appropriate to present to a class of high schoolers. Imagine that you are presenting a proposal to a congressional

This assignment will give you an opportunity to learn more about secondary storage technologies, communications, and networks. Before working on this assignment, you will need to complete the Unit IV

This assignment will give you an opportunity to learn more about secondary storage technologies, communications, and networks. Before working on this assignment, you will need to complete the Unit IV Knowledge Check. Reflect on what you have learned about secondary storage, communications, and network security in this unit. Address the

In Units V, VI, and VII, you learned about the components of a computer, how a computer works, the internet, networks and network communications, cloud computing, web development, digital identity, so

In Units V, VI, and VII, you learned about the components of a computer, how a computer works, the internet, networks and network communications, cloud computing, web development, digital identity, social media, e-commerce, ethical behavior, databases, and explored two Microsoft Office applications, PowerPoint and Access.  In this assignment, you will

Your assignment will have four parts. Before working on this assignment, you will need to complete the Unit III Activity: Word Advanced Features. Part 1: Introduction Begin your assignment with

Your assignment will have four parts. Before working on this assignment, you will need to complete the Unit III Activity: Word Advanced Features. Part 1: Introduction Begin your assignment with an introduction that identifies what a computer, storage, and networking are. Introduce internal, input, and output devices of a computer.

In Units V, VI, and VII, you learned about the components of a computer, how a computer works, the internet, networks and network communications, cloud computing, web development, digital identity, so

In Units V, VI, and VII, you learned about the components of a computer, how a computer works, the internet, networks and network communications, cloud computing, web development, digital identity, social media, e-commerce, ethical behavior, databases, and explored two Microsoft Office applications, PowerPoint and Access.  In this assignment, you will

In Units I, II, and III, you learned about the history of computers, application and system software, blockchain, cryptocurrency, computer ethics, and explored two Microsoft Office applications, Word

In Units I, II, and III, you learned about the history of computers, application and system software, blockchain, cryptocurrency, computer ethics, and explored two Microsoft Office applications, Word and Excel.  In this assignment you will demonstrate what you have learned in these three units. This assignment will have five parts. 

Assignment Tasks Part 1  Choose an organization or company of your choice.  Provide a clear description of the organization, including: o Mission o Vision o Objectives  Identify and describe the ma

Assignment Tasks Part 1  Choose an organization or company of your choice.  Provide a clear description of the organization, including: o Mission o Vision o Objectives  Identify and describe the main business processes in this organization.  Looking at the business processes, point out an issue that