英語をモールス信号に、またはその逆に変換するものを書こうとしています。英語からモールスへの変換は問題なく実行できましたが、逆に変換するのに苦労しています。私は|
言葉の間のスペースとして使用することを意図しているので、- --- | -... .
「ある」ことを意味します. にある私のコードのセクションで何が問題なのか誰か教えてもらえますcase:1
か?
public class Project {
public static void main(String[] args)
{
String[] morse = { ".- ", "-... ", "-.-. ", "-.. ", ". ", "..-. ", "--. ", ".... ", ".. ",
".--- ", "-.- ", ".-.. ", "-- ", "-. ", "--- ", ".--. ", "--.- ", ".-. ", "... ", "- ", "..- ",
"...- ", ".-- ", "-..- ", "-.-- ", "--.. ", "|" };
String[] alphabet = { "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", " " };
int a;
a = Input.getInt("Enter 1 for Morse to English or enter 2 for English to Morse.");
switch (a)
{
case 2:
{
String toMorse = new String();
toMorse = Input.getString("Enter a sentence.");
toMorse = toMorse.toUpperCase();
for (int i = 0; i < toMorse.length(); i++)
{
char x = toMorse.charAt(i);
if (x == ' ') System.out.print(" | ");
else System.out.print(morse[x - 'A']);
}
break;
}
case 1:
{
String toEnglish = new String();
toEnglish = Input.getString("Enter your Morse code.");
String[] parts = toEnglish.split("|");
for (int x = 0; x < parts.length; x++)
{
if (parts.equals(morse[x])) System.out.println(alphabet[x]);
}
break;
}
default:
{
System.out.println("Invalid Response");
}
}
}
}