请帮我解决问题:
我有两个列表:Letter
(包含所有字母)和Symbol
(包含所有莫尔斯代码符号)。我需要两个写一个方法来将一个单词转换成莫尔斯代码。在我看来,这个想法应该是下一个:将单词分成字母,然后用符号替换字母。
class Morse {
void Code(char let){
// what should I write here?
}
}
答案 0 :(得分:2)
您需要将Letter映射到Symbol。我通常更喜欢地图,你可以通过
初始化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 :(得分: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);
}
}