我必须开发一种方法,将字符串作为参数并将其转换为摩尔斯电码,我决定使用HashMap
,但是我不知道如何获取字母的特定值(我将字母设置为键)
package com.company;
import java.lang.reflect.MalformedParameterizedTypeException;
import java.util.*;
public class MorseCode {
public void transformInMorseCode(String prop) {
HashMap<String, String> morseMap = new HashMap<>();
morseMap.put("A", ".-");
morseMap.put("B", "-...");
morseMap.put("C", "-.-.");
morseMap.put("D", "-..");
morseMap.put("E", ".");
morseMap.put("F", "..-.");
morseMap.put("G", "--.");
morseMap.put("H", "....");
morseMap.put("I", "..");
morseMap.put("J", ".---");
morseMap.put("K", "-.-");
morseMap.put("L", ".-..");
morseMap.put("M", "--");
morseMap.put("N", "-.");
morseMap.put("O", "---");
morseMap.put("P", ".--.");
morseMap.put("Q", "--.-");
morseMap.put("R", ".-.");
morseMap.put("S", "...");
morseMap.put("T", "-");
morseMap.put("U", "..-");
morseMap.put("V", "...-");
morseMap.put("W", ".--");
morseMap.put("X", "-..-");
morseMap.put("Y", "-.--");
morseMap.put("Z", "--..");
morseMap.put("1", ".----");
morseMap.put("2", "..---");
morseMap.put("3", "...--");
morseMap.put("4", "....-");
morseMap.put("5", ".....");
morseMap.put("6", "-....");
morseMap.put("7", "--...");
morseMap.put("8", "---..");
morseMap.put("9", "----.");
morseMap.put("0", "-----");
String[] propFinala = prop.split(" ");
for (String s : propFinala) {
if (s.equals(morseMap.keySet())) {
}
}
}
}
答案 0 :(得分:0)
您可以遍历字符并使用toUpperCase()
获得大写变体。以此为键,您可以使用map[key]
方法获取地图值。参见下面的代码
for (String s : propFinala) {
String code = morseMap[s.toUpperCase()]
//Do what you awant with your `code` variable below
}
答案 1 :(得分:0)
这将帮助您:
StringBuilder result = new StringBuilder();
for (char c : prop.toCharArray())
if (morseMap.containsKey(("" + c).toUpperCase()))
result.append(morseMap.get(("" + c).toUpperCase()));
此外,您还应在莫尔斯电码图中添加等于的空格(
/
):
morseMap.put(" ", "/");