C# 这个程序应该把数字翻译成字母。如何?

C# 这个程序应该把数字翻译成字母。如何?,c#,console,C#,Console,我的代码应该把字母翻译成数字。如何把数字翻译成字母 string strs = Console.ReadLine(); Dictionary<char, int> dic = new Dictionary<char, int> { {'A', 1}, {'B', 2}, {'C', 3}, }; for

我的代码应该把字母翻译成数字。如何把数字翻译成字母

string strs = Console.ReadLine();
                Dictionary<char, int> dic = new Dictionary<char, int>
        {
            {'A', 1},
            {'B', 2},
            {'C', 3},

        };

                for (int i = 0; i < strs.Length; i++)
                {
                    int val = 0;
                    if (dic.TryGetValue(strs[i], out val))
                        strs = strs.Replace(strs[i].ToString(), val.ToString());
                }



                Console.WriteLine(strs);
string strs=Console.ReadLine();
字典dic=新字典
{
{'A',1},
{'B',2},
{'C',3},
};
对于(int i=0;i
实际上,您不需要为此使用词典。只需使用
char
类型和
int
类型就可以相对容易地完成。请注意,这假设您的示例始终使用A-Z中的大写字符。如果您需要比这更健壮的东西,显然需要更复杂的逻辑

public static class Converter
{
    public static int? ConvertToInt(char value, char lowerLimit, char upperLimit)
    {
        // If the value provided is outside acceptable ranges, then just return
        // null. Note the int? signature - nullable integer. You could also swap
        // this with 0.
        if (value < lowerLimit || value > upperLimit)
            return null;

        // 'A' is 65. Substracting 64 gives us 1.
        return ((int)value) - 64;
    }

    public static char? ConvertToChar(int value, int lowerLimit, int upperLimit)
    {
        // Basically the same as above, but with char? instead of int?
        if (value < lowerLimit || value > upperLimit)
            return null;

        // 'A' is 65. Substracting 64 gives us 1.
        return ((char)value) + 64;
    }
}

请注意,您需要执行某种级别的字符串索引,但这为您提供了一个很好的结构,您不需要在任何地方存储任何状态-您可以将其作为方法调用的一部分。

所有字符都在映射到数值的计算机中。因此,要获取字符的数值,可以执行以下操作:

int valueOfA= 'A';
结果是65岁。因此,以下措施将起作用:

var text = "ABBA";
foreach (var character in text.ToCharArray())
{
    int result=character;
    Console.WriteLine(result-64);
}
小写字母是33。因此,如果需要将所有a作为1处理,则可以使用:

var text = "aBBA".ToUpper();
foreach (var character in text.ToCharArray())
{
    int result=character;
    Console.WriteLine(result-64);
}
否则你需要做一些检查


还要注意,1的字符不一定是1的值。(实际上是-15)

请指定您的字符串,以便更好地理解您的输出应该是什么?
var text = "aBBA".ToUpper();
foreach (var character in text.ToCharArray())
{
    int result=character;
    Console.WriteLine(result-64);
}