2011-03-13 140 views
0

請幫我解決這個問題:摩爾斯電碼轉換器在Java中

我有兩個列表:Letter(包含所有字母)和Symbol(包含所有莫爾斯電碼符號)。我需要兩個寫一個方法將一個單詞轉換成莫爾斯電碼。在我看來,這個想法應該是下一步:將單詞拆分爲字母,然後用符號替換字母。

class Morse { 
    void Code(char let){ 
    // what should I write here? 
    } 
} 
+4

「//我應該在這裏寫什麼?」碼。如果您想出更具體的問題,請隨時提問。另外,方法名稱應該以小寫字母開頭。 – 2011-03-13 12:11:50

+0

我不知道算法(代碼)應該如何。 – Bob 2011-03-13 12:16:44

+1

您需要Map 。 – 2011-03-13 12:22:20

回答

2

您需要將字母映射到符號。我通常寧願一個地圖,你可以通過

Map<Letter,Symbol> morseCode = new HashMap<Letter, Symbol>(); 
for (int i =0; i< YOURLETTERS.size(); i++) { 
    morseCode.put(YOURLETTERS.get(i), YOURSYMBOLS.get(i)); 
} 

初始化然後,正如你所說的,通過你的信息字符串逐個字符移動,查找映射和符號添加到一個結果(數組或列表,也許)

1

從兩個列表中創建一個轉換表並使用它。

public class Morse { 

    List<Character> letters = ... 
    List<String> codes = ... 

    Map<Character, String> conversionTable = new HashMap<Character, String>(); 

    public void init() { 
     int t = 0; 
     for(Character c : letters) { 
      conversionTable.put(c, codes.get(t)); 
      t++; 
     } 
    } 

    public String code(char let){ 
     return conversionTable.get(let); 
    } 

} 
+1

將初始化輸出到初始化塊會更好。 – 2011-03-13 12:28:52

+0

轉換表的外觀如何? – Bob 2011-03-13 12:41:02