我對Java仍然很陌生,一直試圖讓摩斯密碼轉換器工作。我克服了各種錯誤的第一個問題,但現在程序編譯但不會打印翻譯結果。任何幫助,將不勝感激。System.out.println不打印陣列數據
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(type == "m")
{
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("test");
}
}
}
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)
{
}
}
嘗試打印出來的東西你打印出數組的內容後,看對於字符串/對象比較,循環中有多少次迭代正在運行 –
並使用equals()代替== – kosa
雖然您的方法在編碼方面效率非常低,但編譯並運行良好([演示鏈接](http://ideone.com/UGDpGB))。 – dasblinkenlight