为什么我的莫尔斯代码对英语java编程没有显示任何错误但没有打印任何内容?

时间:2018-03-12 16:47:55

标签: java morse-code

我正在编写一个将莫尔斯代码转换为英语的java程序。我寻求帮助,发现我可能需要对string.split()做一些事情,但我没有经验,也不知道在哪里放。这是我的代码:

String r = JOptionPane.showInputDialog(null, "Please enter the text you would like to be translated into morse code. Use spaces between letters, and \"|\" for a space. " "\n To print \"Hi there\", you would want to type \'.... .. | - .... . .-. . \'\n\n The morse code will print out at the bottom of your screen.");

char [] regenglish = {'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', '0', '1', '2', '3', 
    '4', '5', '6', '7', '8', '9', '!', '?', '.', ',', '/', ':', ';',
    '-', '"', '\'', '(', ')', ' '};

String[] regmorse = { ".- ", "-... ", "-.-. ", "-.. ", 
    ". ", "..-. ", "--. ", ".... ", ".. ", ".--- ", "-.- ", ".-.. ", "-- ", "-.", 
    "--- ", ".--. ", "--.- ", ".-. ", "... ", "- ", "..- ", "...- ", ".-- ", 
    "-..- ", "-.-- ", "--.. ", "----- ", ".---- ", "..--- ", 
    "...-- ", "....- ", "..... ", "-.... ", "--... ", "---.. ",
    "----. ", "-.-.-- ", "..--.. ", ".-.-.- ", "--..-- ", "-..-. ", "-- -... ",
    "-.-.- ", "-....- ", ".----. ", "-.--. ", "-.--.- ", 
        "| "};

String[] morseChars = r.split(" ");

char[] chars = Arrays.toString(morseChars).toCharArray();
boolean endsWithWordSeparator = Arrays.toString(chars).endsWith("| ");
String st = "";
for (int j = 0; j < chars.length; j++)
{
    for (int i = 0; i < regmorse.length; i++)
    {
        if (regmorse[i].equals(Character.toString(chars[j]))) 

        {
            st = st + regenglish[i];
        }
    }
}
System.out.println(st);

我想我只是为什么不打印任何东西,以及扮演什么角色      string.split()播放,如果有的话。

1 个答案:

答案 0 :(得分:2)

if (regmorse[i].equals(Character.toString(chars[j])))

您尝试将字符与多字符字符串进行比较,因此永远不会满足此条件。例如,您要检查&#34; -...&#34;相当于&#34;。&#34;。

你需要先逐个字符地比较后退或者将字符的字符打包在一起,然后再将它们与regmorse进行比较。