2014-12-05 163 views
1

我目前正在编码/解码java中的莫尔斯电码程序。我在解码时遇到问题。我正在严格使用大写字母,只有1个字。没有句子。当我调试,程序无限线之间循环1 & 2.这是我到目前为止有:莫尔斯电码解码 - 1个字

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; 
} 

回答

1

尝试改变线内的循环,这样的:

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