영어로 모스 부호 부분은 잘 작동하지만 모스 부호는 영어로하지 않습니다 ... 나는 계속 E와 T를 얻습니다. 그렇게 할 수있는 방법이 있습니까? 모스 코드 글자 사이에는 "모든 문자"를 가지지 않고 다른 문자를 알 수있는 공간이 있습니다. = E 및 모든 "-"= TMorse Code to English, (If statement?)
모르스 코드에서 영어로 갈 때 공백을 확인하기 위해 코드를 얻으려고합니다. 제대로 작동하지 않습니다.
을 Heres 내 전체 코드 : 당신이 단어를 분할, 다른 하나에서 번역 할 때 그런
int totalLetters = 26;
HashMap<String, String> englishToMorse = new HashMap<String, String>(totalLetters);
HashMap<String, String> morseToEnglish = new HashMap<String, String>(totalLetters);
for (int i = 0; i < Alphabet.length; i++) {
englishToMorse.put(Alphabet[i], Morse[i]);
morseToEnglish.put(Morse[i], Alphabet[i]);
}
:
import java.util.Scanner;
public class MorseCode {
public static void main(String [] args){
String Alphabet [] = {"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"," "};
String Morse [] = {".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--..",".----","..---","...--","....-",".....","-....","--...","---..","----.","-----"," "};
//Decide Either English to Morse or Morse to English
System.out.println("For English-->Morse (Press 'E')\n"
+ "For Mosrse-->English (Press 'M')");
Scanner Input = new Scanner(System.in);
String Response = Input.next();
//For invalid Input
while(!(Response.equalsIgnoreCase("E") || Response.equalsIgnoreCase("M"))){
System.out.println("Invalid input, Please type in E or M");
Response = Input.next();
}
//English to Morse-Code
if(Response.equalsIgnoreCase("E")){
System.out.println("Type in English");
Input.nextLine();
String Ephrase = Input.nextLine();
Ephrase = Ephrase.toUpperCase();
for(int count = 0; count < Ephrase.length(); count++)
{
for(int index = 0; index < Alphabet.length; index++)
{
//Matches English to Morse and Prints
if(Ephrase.substring(count, (count+1)).equals(Alphabet[index]))
System.out.print(Morse[index] + " ");
}
}
}
//Morse-Code to English
else if(Response.equalsIgnoreCase("M")){
System.out.println("Type in MorseCode");
Input.nextLine();
String Mphrase = Input.next();
for(int count = 0; count < Mphrase.length(); count++ )
{
for (Scanner s = new Scanner(Mphrase); s.hasNext();) {
String letter = s.next();
for(int index = 0; index < Morse.length; index++) {
if(letter.equals(Morse[index])) {
System.out.println(Alphabet[index]);
break;
}
}
}
}
}
}}
단계를 통해 것 같아요 ... –
쓰기 단위 테스트. –
모스 부호는 연결된 형태로 디코딩 할 수 없습니다. 각 글자의 갭이 어디인지 알아야합니다. E와 T를 S와 O와 비교하여 무슨 뜻인지 확인하십시오. – Phil