この Java コードは、英語をモールス符号に変換するためのものです。
このプログラムは、ユーザーがセンチネル文字 $ を入力すると終了します。入力された各文字列に続いて、プログラムはモールス信号に相当するものを表示し、文字間に空白スペース (ø) を、単語間に 2 つの øø を残します。
例えば。こんにちは世界。出力は ....ø.ø.-..ø.-..ø---øø.--ø---ø.-.ø.-..ø-..
私のコードにはいくつかの問題があります。1. ユーザーが ø を入力している間、プログラムを終了するには $ をどこに置くべきかわかりません。2.出力は正しいですが、常に (ø) で終わります。System.out.print(code[variable] + "ø");
これが私のコードです:
public class Morse{
public static void main (String [] args)
{
Scanner englishtomorse = new Scanner(System.in);
System.out.println ("Please enter an original sentence in English.");
english = englishtomorse.nextLine();
String str = englishtoMorse(english);
System.out.println(str);
}
public static String englishtoMorse(String english)
{
String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
String code[] = {"._", "_...", "_._.", "_..",".",".._.","__.", "....",
"..", ".___", "_._", "._..", "__","_ .", "___", ".__.", "__._", "._.",
"...", "_", ".._", "..._", ".__", "_.._", "_.__", "__.."};
english = english.toUpperCase();
for(int xyz = 0; xyz < english.length(); xyz++)
{
char letter = english.charAt(xyz);
if (letter == ' ')
{
System.out.print ("ø");
continue;
}
for(int variable = 0; variable < alphabet.length(); variable++)
{
if(alphabet.charAt(variable) == letter)
{
System.out.print(code[variable] + "ø");
break;
}
}
}
return " ";
}