如何解决无法将莫尔斯翻译成英文
我有一个学校项目,我需要将莫尔斯翻译成英语。我是 Java 的新手,所以我想知道您是否可以帮助我。问题是我不确定应该在 while 循环中放置什么来将莫尔斯电码转换为英语。任何帮助,将不胜感激。谢谢^^
public static void main(String[]args){
HashMap<Character,String> translations=new HashMap<Character,String>();
translations.put('A',".-");
translations.put('B',"-...");
translations.put('C',"-.-.");
translations.put('D',"-..");
translations.put('E',".");
translations.put('F',"..-.");
translations.put('G',"--.");
translations.put('H',"....");
translations.put('I',"..");
translations.put('J',".---");
translations.put('K',"-.-");
translations.put('L',".-..");
translations.put('M',"--");
translations.put('N',"-.");
translations.put('O',"---");
translations.put('P',".--.");
translations.put('Q',"--.-");
translations.put('R',".-.");
translations.put('S',"...");
translations.put('T',"-");
translations.put('U',"..-");
translations.put('V',"...-");
translations.put('W',".--");
translations.put('X',"-..-");
translations.put('Y',"-.--");
translations.put('Z',"--..");
translations.put('0',"-----");
translations.put('1',".----");
translations.put('2',"..---");
translations.put('3',"...--");
translations.put('4',"....-");
translations.put('5',".....");
translations.put('6',"-....");
translations.put('7',"--...");
translations.put('8',"---..");
translations.put('9',"----.");
translations.put(' '," ");
HashMap<String,Character> reversedHashMap = new HashMap<String,Character>();
for (char key : translations.keySet()){
reversedHashMap.put(translations.get(key),key);
}Scanner scan=new Scanner(system.in);
System.out.println("Welcome to the translator. Type 1 for English to Morse or type 2 for Morse to English: ");
int choice=scan.nextInt();
if(choice==1)
engToMorse(translations);
else if(choice==2)
morsetoEng(reversedHashMap);
else{
System.out.println("Invalid Input!");
}
}
public static void engToMorse(HashMap<Character,String> translations){
Scanner scan=new Scanner(system.in);
System.out.println("Please enter the sentence that you want to translate to Morse here: ");
String sentence=scan.nextLine().toupperCase();
int i=0;
while(i<sentence.length()){
System.out.printf(translations.get(sentence.charat(i)));
i++;
}
}
public static void morsetoEng(HashMap<String,Character> reversedHashMap){
Scanner scan=new Scanner(system.in);
System.out.println("Please enter the morse code that you want to translate to english: ");
String morse=scan.nextLine().toupperCase();
int i=0;
while(i<morse.length()){
System.out.print();
i++;
}
}
解决方法
阅读输入后,按空格分割输入字符串。对于每个元素,查找莫尔斯电码(键)到字符(值)映射并打印值。
for (String singleCode : morse.split(" ")) {
System.out.print(reversedHashMap.get(singleCode));
}
样本输入输出
Welcome to the translator. Type 1 for English to Morse or type 2 for Morse to English:
2
Please enter the morse code that you want to translate to english:
... -- ...
SMS
,
你可以简单地一一获取莫尔斯电码,每行获取一个莫尔斯电码,处理它并连接到结果字符串,如果你想在一行中获取多个莫尔斯电码,在它们之间使用分隔符然后拆分基于该拆分器的字符串,例如#。
所以你会得到--#.--#..-- 然后将其拆分为:
for (String singleMorse : morse.split("#")) {
System.out.print(reversedHashMap.get(singleCode));
}
注意:因为您的莫尔斯电码中有SPACE,所以使用除SPACE
以外的分隔符更简单版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。