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

Using Java Programming and using arrays and Strings to store these values Morse

ID: 3798033 • Letter: U

Question

Using Java Programming and using arrays and Strings to store these values

Morse code, developed in 1832 by Samuel Morse, is one of the most famous of all coding schemes ever developed. Morse code assigns a series of dots and dashes to each letter of the alphabet, each digit, and a few other punctuation characters. The international version of Morse code for alphabetic characters and digits is shown in the table below. This project involves writing a program to translate Morse code into English and English into Morse code. Your program shall prompt the user to specify the desired type of translation, input a string of Morse code characters or English characters, then display the translated results. The Morse code pattern and English letter translations must be kept and processed using either two one-dimensional or one two-dimensional arrays. When you input Morse code, separate each letter/digit with a single space, and delimit multiple words with a "I". For example, - --- I -.... would be the Morse code input for the sentence "to be". Your program only needs to handle a single sentence and can ignore punctuation symbols. When you input English, separate each word with a blank space.

Explanation / Answer

package org.students;

public 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;
}
  


}

_____________________

Test.java

import java.util.Scanner;

public class Test {

   public static void main(String[] args) {
       int choice;
       MorseTranslator message = null;
       // Scanner class Object is used to read the inputs entered by the user
       Scanner sc = new Scanner(System.in);
       String str;
       String morse;
       String arr[];
       String morseCode[];

       while (true) {
           System.out.println(" 1.String To Morse Code");
           System.out.println("2.Morse Code To String");
           System.out.println("3.Exit");
           System.out.print("Enter choice :");
           choice=sc.nextInt();

           switch (choice) {
           case 1: {
               sc.nextLine();
               System.out.print(" Enter String :");
               str = sc.nextLine();
               arr = str.split(" ");
               morseCode = new String[arr.length];
               for (int i = 0; i < arr.length; i++) {
                   message = new MorseTranslator(arr[i]);
                   morseCode[i] = message.getMorseCode();
               }

               System.out.println("The correspondiong Morse Code is :");
               for (int i = 0; i < arr.length; i++) {
                   System.out.print(morseCode[i] + " ");
               }
               continue;
           }
           case 2: {
               sc.nextLine();
               System.out.print(" Enter Morse Code :");
               morse = sc.nextLine();
               morseCode = morse.split(" ");
               arr = new String[morseCode.length];
               for (int i = 0; i < morseCode.length; i++) {
                   message = new MorseTranslator(morseCode[i]);
                   arr[i] = message.morseToString(morseCode[i]);
               }

               System.out.println("The correspondiong String is :");
               for (int i = 0; i < arr.length; i++) {
                   System.out.print(arr[i]);
               }
               continue;
           }
           case 3:{
               System.out.println(" ** Program Exit **");
               break;
           }
           default: {
               System.out.println(" ** Invalid.Must be either 1 or 2 **");
               continue;
           }
           }
           break;
       }

   }
}

____________________

Output:

1.String To Morse Code
2.Morse Code To String
3.Exit
Enter choice :1

Enter String :Hello Am Jones
The correspondiong Morse Code is :
.... . .-.. .-.. --- .- -- .--- --- -. . ...

1.String To Morse Code
2.Morse Code To String
3.Exit
Enter choice :2

Enter Morse Code :.... . .-.. .-.. --- .- -- .--- --- -. . ...
The correspondiong String is :
helloamjones

1.String To Morse Code
2.Morse Code To String
3.Exit
Enter choice :3

** Program Exit **

_______________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