摩尔斯电码转换器在Java中

问题描述:

请帮我解决这个问题:摩尔斯电码转换器在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

您需要将字母映射到符号。我通常宁愿一个地图,你可以通过

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

初始化然后,正如你所说的,通过你的信息字符串逐个字符移动,查找映射和符号添加到一个结果(数组或列表,也许)

从两个列表中创建一个转换表并使用它。

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