【发布时间】:2016-02-22 23:39:22
【问题描述】:
我想构建一个程序,将英语翻译成摩尔斯电码,反之亦然,我决定使用哈希映射来执行此操作,但我不确定如何通过哈希映射运行字符串并获得最后翻译出来。这是我目前的代码:
import java.util.HashMap;
import java.util.Map;
public class MorseCodeTranslator{
public static String translateToMorseCode() {
String englishtoMorse = "";
String translation = null;
Map<Character, String> morse = new HashMap<Character, String>();
morse.put('a', "._");
morse.put('b', "_...");
morse.put('c', "_._");
morse.put('d', "_..");
morse.put('e', ".");
morse.put('f', ".._.");
morse.put('g', "__.");
morse.put('h', "....");
morse.put('i', "..");
morse.put('j', ".___");
morse.put('k', "_.");
morse.put('l', "._..");
morse.put('m', "__");
morse.put('n', "_.");
morse.put('o', "___");
morse.put('p', ".__.");
morse.put('q', "__._");
morse.put('r', "._.");
morse.put('s', "...");
morse.put('t', "_");
morse.put('u', ".._");
morse.put('v', "..._");
morse.put('w', ".__");
morse.put('x', "_.._");
morse.put('y', "_.__");
morse.put('z', "__..");
return translation;
}
public static String translateFromMorseCode() {
String morsetoEnglish = "";
String translation = null;
Map<Character, String> morse = new HashMap<Character, String>();
morse.put('a', "._");
morse.put('b', "_...");
morse.put('c', "_._");
morse.put('d', "_..");
morse.put('e', ".");
morse.put('f', ".._.");
morse.put('g', "__.");
morse.put('h', "....");
morse.put('i', "..");
morse.put('j', ".___");
morse.put('k', "_.");
morse.put('l', "._..");
morse.put('m', "__");
morse.put('n', "_.");
morse.put('o', "___");
morse.put('p', ".__.");
morse.put('q', "__._");
morse.put('r', "._.");
morse.put('s', "...");
morse.put('t', "_");
morse.put('u', ".._");
morse.put('v', "..._");
morse.put('w', ".__");
morse.put('x', "_.._");
morse.put('y', "_.__");
morse.put('z', "__..");
return translation;
}
}
我希望能够通过哈希映射运行 englishtoMorse 或 morsetoEnglish 中的任何内容,并将字符转换为与哈希映射关联的值,然后将它们输出到 translation。
【问题讨论】:
-
切换
translateFromMorseCode中的键值对。如果要使用这种方法,请将 HashMap 初始化移到方法之外。 -
除了您希望地图与
translateFromMorseCode相反之外,这听起来很合理。您是否遇到特定问题? -
这还不够,因为莫尔斯电码的长度不相等。
-
是的,这是个好主意,谢谢
-
另外,如果您可以使用 Guava,请考虑将您的映射放在 ImmutableBiMap
中,这样您就不必维护这两个映射,并一次性构建它并重复使用相同的地图实例。
标签: java string hash morse-code