Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Please add the logic to allow the user to input morse code and return the englis

ID: 3780300 • Letter: P

Question

Please add the logic to allow the user to input morse code and return the english of the word. For example .... . .-.. .-.. --- should return the word hello. Right now the program is only translating an english string to morse code.

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

class MorseTranslator {

static int NUM_CHARS = 40;
private String original;
private String mcode;
private char[] regular;
private char[] morse;
//Constructs a string original with the given message.

MorseTranslator(String m) {
original = m;
}
//Takes a character, and converts it into its equivalent morse code.

public String toMorse(char ch) {
switch (ch) {
case ' ':
return " ";
case ',':
return "--..--";
case '.':
return ".-.-.-";
case '?':
return "..--..";
case '0':
return "-----";
case '1':
return ".----";
case '2':
return "..---";
case '3':
return "...--";
case '4':
return "....-";
case '5':
return ".....";
case '6':
return "-....";
case '7':
return "--...";
case '8':
return "---..";
case '9':
return "----.";
case 'A':
return ".-";
case 'B':
return "-...";
case 'C':
return "-.-.";
case 'D':
return "-..";
case 'E':
return ".";
case 'F':
return "..-.";
case 'G':
return "--.";
case 'H':
return "....";
case 'I':
return "..";
case 'J':
return ".---";
case 'K':
return "-.-";
case 'L':
return ".-..";
case 'M':
return "--";
case 'N':
return "-.";
case 'O':
return "---";
case 'P':
return ".--.";
case 'Q':
return "--.-";
case 'R':
return ".-.";
case 'S':
return "...";
case 'T':
return "-";
case 'U':
return "..-";
case 'V':
return "...-";
case 'W':
return ".--";
case 'X':
return "-..-";
case 'Y':
return "-.--";
case 'Z':
return "--..";
}
return " ";
}
//Converts the original string, into its equivalent morsecode, and returns.

public String getMorseCode() {
mcode = "";
for (int i = 0; i < original.length(); i++) {
mcode += toMorse(Character.toUpperCase(original.charAt(i))) + " ";
}
return mcode;
}

public String getOriginal() {
return original;
}
  
}

import java.util.*;

class Main {

public static void main(String[] args) {
System.out.print("Enter the string to conver to Morse Code: ");
Scanner sc = new Scanner(System.in);
String original = sc.nextLine();
MorseTranslator message = new MorseTranslator(original);
System.out.println("The morse code equivalent of: " + message.getOriginal() + " is: " + message.getMorseCode());
}
}

Explanation / Answer

MorseTranslator.java

import java.io.*;
import java.util.*;
class MorseTranslator {
static int NUM_CHARS = 40;
private String original;
private String mcode;
private char[] regular;
private char[] morse;
//Constructs a string original with the given message.
MorseTranslator(String m) {
original = m;
}
//Takes a character, and converts it into its equivalent morse code.
public String toMorse(char ch) {
switch (ch) {
case ' ':
return " ";
case ',':
return "--..--";
case '.':
return ".-.-.-";
case '?':
return "..--..";
case '0':
return "-----";
case '1':
return ".----";
case '2':
return "..---";
case '3':
return "...--";
case '4':
return "....-";
case '5':
return ".....";
case '6':
return "-....";
case '7':
return "--...";
case '8':
return "---..";
case '9':
return "----.";
case 'A':
return ".-";
case 'B':
return "-...";
case 'C':
return "-.-.";
case 'D':
return "-..";
case 'E':
return ".";
case 'F':
return "..-.";
case 'G':
return "--.";
case 'H':
return "....";
case 'I':
return "..";
case 'J':
return ".---";
case 'K':
return "-.-";
case 'L':
return ".-..";
case 'M':
return "--";
case 'N':
return "-.";
case 'O':
return "---";
case 'P':
return ".--.";
case 'Q':
return "--.-";
case 'R':
return ".-.";
case 'S':
return "...";
case 'T':
return "-";
case 'U':
return "..-";
case 'V':
return "...-";
case 'W':
return ".--";
case 'X':
return "-..-";
case 'Y':
return "-.--";
case 'Z':
return "--..";
}
return " ";
}
//Converts the original string, into its equivalent morsecode, and returns.
public String getMorseCode() {
mcode = "";
for (int i = 0; i < original.length(); i++) {
mcode += toMorse(Character.toUpperCase(original.charAt(i))) + " ";
}
return mcode;
}
public String getOriginal() {
return original;
}
public String morseToString(String morse)
{
   String str ="";
if(morse.equals(" "))
str=" ";
else if(morse.equals("--..--"))
str=",";
else if(morse.equals(".-.-.-"))
str=".";
else if(morse.equals("..--.."))
str="?";
else if(morse.equals("-----"))
str="0";
else if(morse.equals(".----"))
str="1";
else if(morse.equals(".----"))
str="2";
else if(morse.equals("..---"))
str="3";
else if(morse.equals("....-"))
str="4";
else if(morse.equals("....."))
str="5";
else if(morse.equals("-...."))
str="6";
else if(morse.equals("--..."))
str="7";
else if(morse.equals("---.."))
str="8";
else if(morse.equals("----."))
str="9";
else if(morse.equals(".-"))
       str="A";
   else if(morse.equals("-..."))
       str="B";
   else if(morse.equals("-.-."))
       str="C";
   else if(morse.equals("-.."))
       str="D";
   else if(morse.equals("."))
       str="E";
   else if(morse.equals("..-."))
       str="F";
   else if(morse.equals("--."))
       str="G";
   else if(morse.equals("...."))
       str="H";
   else if(morse.equals(".."))
       str="I";
   else if(morse.equals(".---"))
       str="J";
   else if(morse.equals("-.-"))
       str="K";
   else if(morse.equals(".-.."))
       str="L";
   else if(morse.equals("--"))
       str="M";
   else if(morse.equals("-."))
       str="N";
   else if(morse.equals("---"))
       str="O";
   else if(morse.equals(".--."))
       str="P";
   else if(morse.equals("--.-"))
       str="Q";
   else if(morse.equals(".-."))
       str="R";
   else if(morse.equals("..."))
       str="S";
   else if(morse.equals("-"))
       str="T";
   else if(morse.equals("..-"))
       str="U";
   else if(morse.equals("...-"))
str="V";
   else if(morse.equals(".--"))
str="W";
   else if(morse.equals("-..-"))
str="X";
   else if(morse.equals("--.."))
str="Y";
   else if(morse.equals("--.."))
str="Z";
       return str.toLowerCase();
}
public String getString(String morse)
{
   String str="";
   String args[]=morse.split(" ");
   for(int i=0;i<args.length;i++)
   {
       str+=morseToString(args[i]);
   }
   return str;
}
  
  
}

_________________________

Main.java

import java.util.*;
class Main {
public static void main(String[] args) {
   //Scanner class Object is used to read the inputs entered by the user
   Scanner sc = new Scanner(System.in);
  
   //Getting the String entered by the user
System.out.print("Enter the string to conver to Morse Code: ");
String original = sc.nextLine();
  
//Creating the MorseTranslator class object
MorseTranslator message = new MorseTranslator(original);
  
//Displaying the converted string to morse code
System.out.println("The morse code equivalent of: " + message.getOriginal() + " is: " + message.getMorseCode());
  
//Getting the String entered by the user
System.out.print(" Enter the morse code to convert to String :");
String morse=sc.nextLine();
  
//Displaying the converted morse to string
System.out.println("The Equivalent String is :"+message.getString(morse));
}
}

_______________________________

Output:

Enter the string to conver to Morse Code: hello
The morse code equivalent of: hello is:
.... . .-.. .-.. ---

Enter the morse code to convert to String :.... . .-.. .-.. ---
The Equivalent String is :hello

________Thank You

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote