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);
}