MorseCode类没有翻译

时间:2015-04-03 05:07:42

标签: java

这个程序应该将英语翻译成莫尔斯电码,但每次我输入一个单词时,我都会收到英文字母和数字,例如“\ cf0”。我很确定莫尔斯代码数组具有正确的值。这可能是格式化问题吗?请帮忙。感谢。

MorseCode类

public class MorseCode {

    public static String decode(char[] alphabet, String[] morseCode, String originalMessage) {
        char currentChar;
        String getMorseChar;
        String convertedString = " ";

        for (int i = 0; i < originalMessage.length(); i++) {
            convertedString = " ";
            currentChar = originalMessage.charAt(i); 
            getMorseChar = convert(currentChar, alphabet, morseCode);
            convertedString = convertedString + getMorseChar;                  
        }

        return convertedString;

    }

    public static String convert (char currentChar, char[] alphabet, String[] morseCode) {  
        String morse = ""; 

        for (int x = 0; x < alphabet.length; x++) {
            if (currentChar == alphabet[x])
                morse = morseCode[x];
        }
        return morse;  
    }  

}

MorseCodeTester类

public class MorseCodeTester {
    public static void main(String[] args) throws IOException {
        String[] morseCode = new String[26];
        char[] 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' };

        Scanner scanner = new Scanner(System.in);
        Scanner inFile = new Scanner(new File("morse.rtf")); 

        for (int x = 0; x < 26; x++) {
            morseCode[x] = inFile.next( );
        }
        inFile.close();

        System.out.println("What message would you like to translate?");
        String originalMessage = scanner.next();

        String converted = MorseCode.decode(alphabet, morseCode, originalMessage);
        System.out.println(converted);
    }

}

0 个答案:

没有答案