2015-03-31 29 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