1. Engineering
  2. Computer Science
  3. so in this translator to morse code to english and...

Question: so in this translator to morse code to english and...

Question details

So in this translator to Morse Code to English and vice versa got it working . I just need help with At any time, the user may enter “-1” to exit the application.

here is my finished java code :

import java.util.Scanner;

public class program

{

   public static String ToEng(String message) {

   String[] mCodes = { "*-*-*- ", "*-**-* ", "--**-- ", "**--** ", "-*--*- ", "-*--*-", "*----* ", "-*-*-- ",

   "-**-* ", "*---- ", "**--- ", "***-- ", "****- ", "***** ", "-**** ", "--*** ", "---** ", "----* ",

   "----- ", "--** ", "-*-- ", "-**- ", "*--- ", "*--* ", "***- ", "*-- ", "**-* ", "**- ", "-*-* ",

   "-*** ", "**** ", "*-** ", "*** ", "*-* ", "-** ", "--*- ", "-*- ", "--* ", "*- ", "-* ", "--- ", "** ",

   "-- ", "- ", "* " };

   String[] chars = { ".", "\"", ",", "?", "(", ")", "'", "!", "/",

   "1", "2", "3", "4", "5", "6", "7", "8", "9", "0",

   "z", "y", "x", "j", "p", "v", "w", "f", "u", "c", "b", "h", "l", "s", "r", "d", "q", "k", "g", "a", "n", "o", "i", "m", "t", "e" };

  

  

// splitting it into array

   String arr[]=message.split(" ");

   String temp="";

   // iterating through the array

   for(String s:arr){

   // getting index of morseCode

   int i=getIndex(s);

   // appening equalant char

   temp=temp+chars[i];

   }

   // printing code

   System.out.println(temp);

   return (temp);

   }

private static int getIndex(String aS) {

   aS=aS+" ";

   String[] mCodes = { "*-*-*- ", "*-**-* ", "--**-- ", "**--** ", "-*--*- ", "-*--*-", "*----* ", "-*-*-- ",

   "-**-* ", "*---- ", "**--- ", "***-- ", "****- ", "***** ", "-**** ", "--*** ", "---** ", "----* ",

   "----- ", "--** ", "-*-- ", "-**- ", "*--- ", "*--* ", "***- ", "*-- ", "**-* ", "**- ", "-*-* ",

   "-*** ", "**** ", "*-** ", "*** ", "*-* ", "-** ", "--*- ", "-*- ", "--* ", "*- ", "-* ", "--- ", "** ",

   "-- ", "- ", "* " };

   int index=-1;

   for(String s:mCodes){

   if(s.equalsIgnoreCase(aS))

   return ++index;

   index++;

   }

   return index;

   }

   public static String ToMorse(String Message) {

   String[] mcodes = { "*- ", "-*** ", "-*-* ", "-** ", "* ", "**-* ", "--* ", "**** ", "** ", "*--- ", "-*- ",

   "*-** ", "-- ", "-* ", "--- ", "*--* ", "--*- ", "*-* ", "*** ", "- ", "**- ", "***- ", "*-- ", "-**- ",

   "-*-- ", "--** ", /* numbers */ "*---- ", "**--- ", "***-- ", "****- ", "***** ", "-**** ", "--*** ",

   "---** ", "----* ", "----- ", /* Stop */ "*-*-*- ",

   /* quotation marks */ "*-**-* ", /* comma */ "--**-- ",

   /* question mark */ "**--** ", /* parentheses */"-*--*- ", "-*--*-", /* apostrophe */ "*----* ",

   /* exclamation mark */ "-*-*-- ", /* slash */ "-**-* " };

   String[] Chars = { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r",

   "s", "t", "u", "v", "w", "x", "y", "z", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", ".", "",

   ",", "?", "(", ")", "'", "!", "/" };

   String[] caps = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S",

   "T", "U", "V", "W", "X", "Y", "Z" };

   for (int b = 0; b <= 44; b++) {

   Message = Message.replace(Chars[b], mcodes[b]);

   }

   for (int c = 0; c <= 25; c++) {

   Message = Message.replace(caps[c], mcodes[c]);

   }

   System.out.println(Message);

   return (Message);

   }

   public static void main(String[] args) {

System.out.println("Welcome to Translator:");

  

  

   System.out.println("Please input your message:");

   String msg;

   Scanner sc = new Scanner(System.in);

   msg = sc.nextLine();

   System.out.println(msg + " ");

   if (msg.contains("*")) {

   ToEng(msg);

   }

   else {

   ToMorse(msg);

   }

   }

}

Solution by an expert tutor
Blurred Solution
This question has been solved
Subscribe to see this solution