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