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
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.