2015-03-31 110 views
0

請原諒我的薄弱能力。我正在嘗試編寫一個將英文轉換成莫爾斯電碼的方法。正如你所看到的,我使用hashmap來存儲等價物,然後轉換它並將莫爾斯碼存儲到變量'result'中。我擔心的是我無法在循環之外返回變量'結果'。如果我返回'dataInput',是不是隻是返回原始輸入?我怎樣才能返回正確的結果?關於如何退回方法的摩爾斯電碼轉換

public static String morseCode(String dataInput) 
{ 
    Map<String, String> morseCode = new HashMap<String, String>(); 
    morseCode.put("a", ".-");    
    morseCode.put("b", "-..."); 
    morseCode.put("c", "-.-."); 


     for (int i = 0; i<dataInput.length(); i++) 
     { 
      String result = (String)morseCode.get(dataInput.charAt(i)+""); 
      //convert input data into morse code 

     } 

     return dataInput;   
} 
+0

格式的代碼也是正確的,這將是更具可讀性。 – 2015-03-31 06:40:02

回答

0

嘗試這樣的:

import java.lang.StringBuffer; //at the top 

    Map morseCode = new HashMap(); 
    morseCode.put("a", ".-"); 
    morseCode.put("b", "-..."); 
    morseCode.put("c", "-.-."); 
    StringBuffer buff = new StringBuffer(); 

    for (int i = 0; i<dataInput.length(); i++) 
    { 
     String result = (String)morseCode.get(dataInput.charAt(i)); 
     //convert input data into morse code 
     buff.append(result+" "); 
    } 
    return buff.toString(); 
} 
+0

它說無法找到方法add(java.lang.String) – SimplyKz 2015-03-31 06:52:45

+0

嘗試導入後java.lang.StringBuffer @SimpleKz – Anand 2015-03-31 07:00:30

+0

@SimpleKz,試試我編輯的答案.. – Anand 2015-03-31 07:08:34