我正在尝试将字符串转换String input;
为莫尔斯电码并返回。我很难弄清楚要使用哪种方法以及如何使用它。字符串我正在尝试转换为莫尔斯电码: SOS
,它应该转换为...---...
,并从莫尔斯电码转换为英语: ...---...
- SOS
。
我尝试的一种方法是使用两个数组,String[] alpha = {A-Z0-9}
并且String[] morse = {morse patterns}
. 然后我尝试将String
输入拆分为一个数组,将 String 输入中的每个字符与其中的每个字符进行比较String[] alpha
,并将每个索引存储在indexArray[]
. 我用了inputArray= input.split("", -1);
最后,通过一些for
循环和if
语句,我尝试使用我想要找到的字符串字符的索引,在String[] morse
.
我上面尝试的内容不适用于单词,但适用于一个字符(下面的代码)。它失败了,我无法弄清楚如何以这种方式修复它。这甚至是最好的方法吗?或者HashMap
?
然后我尝试使用 aHashMap
以英文字符为键,以 morse 为值。
哪种方式是将英文字符串转换为摩尔斯电码和将摩尔斯电码转换为英文字符串的最佳方法?数组还是 HashMap?
数组:
private String[] alpha = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J",
"K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V",
"W", "X", "y", "z", "1", "2", "3", "4", "5", "6", "7", "8",
"9", "0", " "};
private String[] morse = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.",
"....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.",
"--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-",
"-.--", "--..", ".----", "..---", "...--", "....-", ".....",
"-....", "--...", "---..", "----.", "-----", "|"};
我正在处理的循环中断,无法弄清楚如何做到这一点:
public int[] indexOfArray(String englishInput) {
englishArray = englishInput.split("", -1);
for (int j = 0; j < englishArray.length; j++) {
for (int i = 0; i < alpha.length; i++) {
if (alpha[i].equals(englishArray[j])) {
indexArray[i] = i;
}
}
}
return indexArray;
}
这仅适用于一个字符(字符到摩尔斯电码):
public int indexOfArrayOld(String englishInput) {
for (int i = 0; i < alpha.length; i++) {
if (alpha[i].equals(englishInput)) {
indexOld = i;
}
}
return indexOld;
}
public String stringToMorseOld(int dummyIndex) {
String morseCo = morse[dummyIndex];
return morseCo;
}
哈希映射:
private static HashMap<String, String>; alphaMorse = new HashMap<String, String>();
static {
alphaMorse.put("A", ".-");
alphaMorse.put("B", "-...");
alphaMorse.put("C", "-.-.");
alphaMorse.put("D", "-..");
alphaMorse.put("E", ".");
alphaMorse.put("F", "..-.");
alphaMorse.put("G", "--.");
alphaMorse.put("H", "....");
alphaMorse.put("I", "..");
alphaMorse.put("J", ".---");
alphaMorse.put("K", "-.-");
alphaMorse.put("L", ".-..");
alphaMorse.put("M", "--");
alphaMorse.put("N", "-.");
alphaMorse.put("O", "---");
alphaMorse.put("P", ".--.");
alphaMorse.put("Q", "--.-");
alphaMorse.put("R", ".-.");
alphaMorse.put("S", "...");
alphaMorse.put("T", "-");
alphaMorse.put("U", "..-");
alphaMorse.put("V", "...-");
alphaMorse.put("W", ".--");
alphaMorse.put("X", "-..-");
alphaMorse.put("y", "-.--");
alphaMorse.put("z", "--..");
alphaMorse.put("1", ".----");
alphaMorse.put("2", "..---");
alphaMorse.put("3", "...--");
alphaMorse.put("4", "....-");
alphaMorse.put("5", ".....");
alphaMorse.put("6", "-....");
alphaMorse.put("7", "--...");
alphaMorse.put("8", "---..");
alphaMorse.put("9", "----.");
alphaMorse.put("0", "-----");
alphaMorse.put(" ", "|");
}