用Java中的HashMap制作莫尔斯电码

用Java中的HashMap制作莫尔斯电码,java,hashmap,Java,Hashmap,因此,我正在学习如何使用HashMap对象。我的问题是,如果我使用scanner对象向用户请求字符串,并将其保存到字符串变量中。如何将该字符串与HashMap进行“比较” 例如,如果用户输入“abc” 我的HashMap有(“a”、“abra”)(“b”、“blanoise”)(“c”、“charizard”) 我想打印到System.out.println结果——abra Blanoise charizard而不是abc 我将分享我的代码,我现在有,但我坚持与下一步,我希望我的问题是明确的

因此,我正在学习如何使用HashMap对象。我的问题是,如果我使用scanner对象向用户请求字符串,并将其保存到字符串变量中。如何将该字符串与HashMap进行“比较”

例如,如果用户输入“abc”

我的HashMap有(“a”、“abra”)(“b”、“blanoise”)(“c”、“charizard”)

我想打印到System.out.println结果——abra Blanoise charizard而不是abc

我将分享我的代码,我现在有,但我坚持与下一步,我希望我的问题是明确的

    public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);
    String keyboard = "";
    HashMap hm = new HashMap();

    hm.put("A","Abra");
    hm.put("B", "Blastoise");
    hm.put("C", "Charizard");
    hm.put("D", "Dewgong");

    keyboard = sc.nextLine();

高级版谢谢:)

您可以使用字符作为地图的键,例如put('a','Abra'),然后比较每个字符

char[] str = string.toLowerCase().toCharArray();
for(char c : str)
   System.out.println(map.get(c));

还请注意,“A”与“A”不同,您需要处理这种情况,最好在getCharArray()之前调用字符串中的toLowerCase()。

@marco这很有意义,我非常感谢!我的问题是字符串;部分,netbeans的内部不存在getCharArrayString@GianNobilione这不是“Netbeans”的东西,而是Java的东西:@Marco ahh现在它可以编译了,但是结果是null,但这绝对是一个好的开始point@Turing85这对我来说可能有点太高级了,但谢谢:)@GianNobilione将“字符串”替换为您从扫描仪中读取的字符串,并使用您需要的地图have@JBNizet我理解您为什么认为它是重复的,但我不是简单地要求字符串的迭代过程。我想知道如何获取该字符串并在HashMap的值部分转换它。标记为重复项的内容与HashMapswith
String value=hashMap.get(key)
无关。这基本上就是HashMap的全部要点:获取一个与键关联的值。请,请阅读javadoc,并阅读集合教程。