摩尔斯电码转换器在Java中
问题描述:
请帮我解决这个问题:摩尔斯电码转换器在Java中
我有两个列表: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);
}
}
+1
将初始化输出到初始化块会更好。 – 2011-03-13 12:28:52
+0
转换表的外观如何? – Bob 2011-03-13 12:41:02
“//我应该在这里写什么?”码。如果您想出更具体的问题,请随时提问。另外,方法名称应该以小写字母开头。 – 2011-03-13 12:11:50
我不知道算法(代码)应该如何。 – Bob 2011-03-13 12:16:44
您需要Map。 –
2011-03-13 12:22:20