I am very new to java and have been having trouble with my morse code program. Please bear with me, but when entering text to be translated from morse code to english it just prints null in place of letters. Any help would be greatly appreciated.
import java.util.Scanner;
public class MorseCode
{
public static void main(String[] args)
{
Scanner Input = new Scanner(System.in);
System.out.println("To convert English to Morse Code, type M. To convert Morse Code to English, type E.");
String cType = Input.nextLine();
String type = cType.toLowerCase();
if("m".equals(type))
{
String eng;
System.out.println("Please enter the English text to be translated.");
eng = Input.nextLine();
EToM(eng);
}
else
{
String morse;
System.out.println("Please enter the Morse code text to be translated, with multiple words seperated by a |.");
morse = Input.nextLine();
MToE(morse);
}
}
public static void EToM(String eng)
{
String EToMList[] = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".--", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--..", ".----", "..---", "...--", "....-", ".....", "-....", "--...", "----.", "-----", "|"};
String alphabet = "abcdefghijklmnopqrstuvwxyz123456789 ";
String translation[] = new String[eng.length()];
for(int x = 0; x < eng.length(); x++)
{
for(int y = 0; y < alphabet.length(); y++)
{
if(eng.charAt(x) == alphabet.charAt(y))
{
translation[x] = EToMList[y];
}
}
}
System.out.println("Your translated message is:");
for(int z = 0; z < eng.length(); z++)
{
System.out.println(translation[z]);
}
}
public static void MToE(String morse)
{
int arraySize = 0;
String MToEList[] = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".--", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--..", ".----", "..---", "...--", "....-", ".....", "-....", "--...", "----.", "-----", "|"};
String alphabet = "abcdefghijklmnopqrstuvwxyz123456789 ";
char space = '|';
for(int x = 0; x < morse.length(); x++)
{
if(morse.charAt(x) == space)
{
arraySize += 1;
}
}
String segmentedMessage[] = new String[arraySize];
String translation[] = new String[arraySize];
int a = 1;
int counter = 0;
for(int y = 0; y < morse.length(); y++)
{
if(morse.charAt(y) == space)
{
segmentedMessage[counter] = morse.substring((a - 1), (y + 1));
a = y;
}
}
for(int z = 0; z < segmentedMessage.length; z++)
{
for(int i = 0; i < alphabet.length(); i++)
{
if(segmentedMessage[z] == MToEList[i])
{
translation[z] = alphabet.substring(i - 1, i + 1);
}
}
}
System.out.println("Your translated message is:");
for(int j = 0; j < translation.length; j++)
{
System.out.println(translation[j]);
}
}
}