0

请帮我解决问题:

我有两个列表:(Letter包含所有字母)和Symbol(包含所有莫尔斯电码符号)。我需要两个写一个将单词转换为莫尔斯电码的方法。在我看来,下一步应该是:将单词拆分为字母,然后用符号替换字母。

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

2 回答 2

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));
}

然后,正如您所说,逐个字符地浏览您的消息字符串,查找映射并将符号添加到结果(可能是数组或列表)

于 2011-03-13T12:23:10.540 回答
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);
    }

}
于 2011-03-13T12:24:48.470 回答