如何在字符串末尾添加字母/短语?

时间:2017-08-07 20:06:48

标签: c#

我正在做一些简单的事情,莫尔斯电码翻译。我想知道如何在字符串末尾添加字母,例如,' - '代表'O'

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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();
}
相关问题