Java クラスの紹介では、英語からモールス信号への変換とモールス信号から英語への変換の両方が可能なモールス信号変換プログラムを作成することになっています。私のコードは英語をモールス信号に変換するのに役立ちますが、モールス信号から英語に変換することはできないようです。プロンプトは次のとおりです。
このプロジェクトでは、モールス信号を英語に、英語をモールス信号に変換するプログラムを作成します。プログラムは、希望する翻訳の種類を指定するようにユーザーに促し、モールス符号文字または英語文字の文字列を入力してから、翻訳結果を表示する必要があります。モールス符号を入力するときは、各文字/数字を 1 つのスペースで区切り、複数の単語を「|」で区切ります。たとえば、 --- | -… . 文「to be」のモールス符号入力になります。プログラムは 1 つの文を処理するだけでよく、句読点記号は無視できます。英語を入力するときは、各単語を空白で区切ります。
現在の「モールス信号」コードの何が問題なのか疑問に思っています。何が問題なのかご理解いただけましたら、ご協力をお願いいたします。私はこの問題を解決するために何時間も費やし、2015 年 8 月 26 日の太平洋時間の真夜中までにこの問題にたどり着きました。ありがとう!これが私のコードです:
//Justin Buckley
//8.26.2015
import java.util.Scanner;
public class MorseCodeProject1 {
public static void main (String[] args)
{
char [] English = { '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 [] Morse = { ".-" , "-..." , "-.-." , "-.." , "." , "..-." , "--." , "...." , ".." , ".---" , "-.-" , ".-.." , "--" , "-." , "---" , ".--." , "--.-" , ".-." , "..." , "-" , "..-" , "...-" , ".--" , "-..-" , "-.--" , "--.." , "|" };
Scanner input = new Scanner (System.in);
System.out.println( "Please enter \"MC\" if you want to translate Morse Code into English, or \"Eng\" if you want to translate from English into Morse Code" );
String a = input.nextLine();
if ( a.equalsIgnoreCase("MC"))
{
System.out.println( "Please enter a sentence in Morse Code. Separate each letter/digit with a single space and delimit multiple words with a | ." );
String b = input.nextLine();
String[] words = b.split("|");
for (String word: words )
{
String[] characters = word.split(" ");
for (String character: characters)
{
if (character.isEmpty()) { continue; }
for (int m = 0; m < Morse.length; m++)
{
if (character.equals(Morse[m]))
System.out.print(English[ m ]);
}
}
System.out.print(" ");
}
}
else if ( a.contains("Eng" ))
{
System.out.println("Please enter a sentence in English, and separate each word with a blank space.");
String c = input.nextLine();
c = c.toLowerCase ();
for ( int x = 0; x < English.length; x++ )
{
for ( int y = 0; y < c.length(); y++ )
{
if ( English [ x ] == c.charAt ( y ) )
System.out.print ( Morse [ x ] + " " );
}
}
}
else
{
System.out.println ( "Invalid Input" );
}
}
}