2017-08-07 120 views
-5

我正在研究一些簡單的莫爾斯電碼譯員。我想知道如何在字符串的末尾添加字母,例如'---'代表'O'如何在字符串的末尾添加字母/短語?

+0

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/strings/how-to-concatenate - 多串您可以使用'+'運算符將字符串添加到一起 –

+0

添加在什麼上下文中?要添加到基本字符串的末尾,您實際上只是執行'+ ='。考慮到你只是通過使用「C#添加字符串」來獲得大量的例子,你應該很容易地**自己研究這個。 –

+0

使用+ =。使用一個StringBuilder。我非常喜歡給出答案,但這是一個非常簡單的主題。也許可以嘗試tutorialspoint.com最初的簡單語法「如何」的問題。 – James

回答

0
 Dictionary<char, String> morseCode = new Dictionary<char, String>() 
     { 
      {'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 userText = "String To Test"; 

     userText = userText.ToLower(); 

     var sb = string.Empty; //var sb = new StringBuilder(); 

     for (int index = 0; index < userText.Length; index++) 
     { 
      var t = userText[index]; 

      if (t != ' ') 
      { 
       string morseValue; 

       if (morseCode.TryGetValue(t, out morseValue)) 
       { 
        sb += morseValue + " "; //or sb.Append(morseValue + " "); 
       } 
      } 
      else { 
       sb += "\n"; //or sb.Append("\n"); 
      } 
     } 

     Console.WriteLine(sb); // or Console.WriteLine(sb.ToString()); 

我向您展示了兩個示例。如果你想測試一下試一下: http://rextester.com/OYGUG79820

+0

我糾正了錯誤,謝謝你的幫助。 – Laurianti

0

可以使用+運營商對字符串,這將一起將它們連接起來:

var code = "...." + " " + ".."; // This will result in: ".... .." 

對於一個循環中將許多字符串,就像當我們把每個字符並將其附加,使用StringBuilder更快並且使用更少的內存:

public static string MorseEncode(string inputString) 
{ 
    if (inputString == null) return null; 

    var codeBuilder = new StringBuilder(); 

    foreach (char input in inputString) 
    { 
     // Assuming you have a method to get the morse code for a char 
     string encodedChar = GetMorseCode(input); 

     // Append our encoded char to our StringBuilder 
     codeBuilder.Append(encodedChar); 
    } 

    // Return the String representation of our StringBuilder 
    return codeBuilder.ToString(); 
} 
相關問題