我目前正在用Java编码/解码摩尔斯电码程序。我在解码时遇到问题。我严格使用大写字母和仅1个单词。没有句子。当我调试时,该程序在第1行和第2行之间无限循环。这是到目前为止的内容:

M[0] = .-; to M[25] = --..;

String decode (String m) {
    m = m + " ";
    String temp = "";
    String word = "";

    do {
        temp = m.substring(0,m.indexOf(" "));  //Line 1

        for (int i = 0; i < m.length(); i++) {
            if (temp.equals(M[i])){      // Line 2
                word += (char)i + 'A';
                m = m.substring(m.indexOf(" " + 1));
            }
        }
    } while (m.contains(" "));

    return word;
}

最佳答案

尝试将for循环内的行更改为此:

 m = m.substring(m.indexOf(" ")+1);

关于java - 摩尔斯电码解码-1个字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27322322/

10-15 22:03