我一直在嘗試創建一個莫爾斯電碼翻譯器,並且遇到了一些問題。它編譯,但是當我嘗試運行它時,它只會詢問你想要翻譯的方式的第一個問題,而不是你想要翻譯的內容。我知道我的第一個功能非常低效。我也使用Input.getString
,我不認爲它是標準的,但它基本上允許你輸入一個字符串。莫爾斯電碼翻譯器
這是我的代碼:使用==
public class MorseCodeJavaProgram {
public static void morse(String s3){
int letters [ ] = new int [ 26 ];
for (int num = 0; num < s3.length(); num++){
switch (s3.charAt(num)){
case 'a':
System.out.print(".- ");
break;
case 'b':
System.out.print("-… ");
break;
case 'c':
System.out.print("-.-. ");
break;
case 'd':
System.out.print("-.. ");
break;
case 'e':
System.out.print(". ");
break;
case 'f':
System.out.print("..-. ");
break;
case 'g':
System.out.print("--. ");
break;
case 'h':
System.out.print("…. ");
break;
case 'i':
System.out.print(".. ");
break;
case 'j':
System.out.print(".--- ");
break;
case 'k':
System.out.print("-.- ");
break;
case 'l':
System.out.print(".-.. ");
break;
case 'm':
System.out.print("-- ");
break;
case 'n':
System.out.print("-. ");
break;
case 'o':
System.out.print("--- ");
break;
case 'p':
System.out.print(".--. ");
break;
case 'q':
System.out.print("--.- ");
break;
case 'r':
System.out.print(".-. ");
break;
case 's':
System.out.print("... ");
break;
case 't':
System.out.print("- ");
break;
case 'u':
System.out.print("..- ");
break;
case 'v':
System.out.print("...- ");
break;
case 'w':
System.out.print(".-- ");
break;
case 'x':
System.out.print("-..- ");
break;
case 'y':
System.out.print("-.-- ");
break;
case 'z':
System.out.print("--.. ");
break;
case ' ':
System.out.print(" | ");
break;
}
}
}
public static void toEnglish(String s1){
String english [ ] = { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "x", "y", "z", " " };
String morse [ ] = { ".- ", "-... ", "-.-. ", "-.. ", ". ", "..-. ", "--. ", "…. ", ".. ", ".--- ", "-.- ", ".-.. ", "-- ", "-. ", "--- ", ".--. ", "--.- ", ".-. ", "... ", "- ", "..- ", "...- ", ".-- ", "-..- ", "-.-- ", "--.. ", "| " };
for (int num = 0; num < s1.length(); num++){
if (s1.charAt (num) == ' '){
for (int num2 = num; num2 < s1.length(); num2++){
if (s1.charAt (num2++) == ' '){
for (int num3 = 0; num < 26; num3++){
if (s1.substring(num++, num2 + 2) == (morse [ num3 ])){
System.out.print(english [ num3 ]);
}
}
}
}
}
}
}
public static void main(String [] args){
String s2 = Input.getString("To Morse or From Morse");
if (s2 == "From Morse"){
String s1 = Input.getString("Please type a phrase in English");
toEnglish(" " + s1 + " ");
}
if (s2 == "To Morse"){
String s3 = Input.getString("Please type a phrase in Morse Code");
morse(s3);
}
}
}
我不知道爲什麼我的代碼想出了兩次遺憾 – user1690013
在比較文本字符串,我使用'string.equalsIgnoreCase(anotherString)的粉絲;' –