C# 如何将用户输入作为单独的字符?
我想将用户键入的每个字符作为一个单独的值,例如,如果用户键入Hello world,每个字符分别存储为H、E、L、L、O,这样我可以将字符从A-G转换为1h-Q转换为2,将R-Z转换为3,这样Hello的输出结果是:21222您可以使用正则表达式:C# 如何将用户输入作为单独的字符?,c#,C#,我想将用户键入的每个字符作为一个单独的值,例如,如果用户键入Hello world,每个字符分别存储为H、E、L、L、O,这样我可以将字符从A-G转换为1h-Q转换为2,将R-Z转换为3,这样Hello的输出结果是:21222您可以使用正则表达式: using System.Text.RegularExpressions; string input = "Hello Wolrd"; input = input.ToUpper(); input = Regex.Replace(input, "[
using System.Text.RegularExpressions;
string input = "Hello Wolrd";
input = input.ToUpper();
input = Regex.Replace(input, "[A-G]", "1");
input = Regex.Replace(input, "[H-Q]", "2");
input = Regex.Replace(input, "[R-Z]", "3");
此示例代码可以改进/优化,但这将为您提供一个简单的起点,以满足您的需要。请记住,字符串实际上只是char…string.tocharray@字符串不仅仅是一个字符数组。否则我们将只使用一个字符数组@因此,J.H.Bonarius有效地使用了这个词,如果您想要更可读/可维护的代码,我建议使用@SegFault的正则表达式解决方案。如果您需要超高速,您可以使用此解决方案,例如,您要通过相同的字典查找传递大量字符串
var map = new Dictionary<char, char>() { { 'A', '1'}, {'B', '1'}, //etc };
var result = new StringBuilder();
foreach (char c in srcString) {
char mappedChar;
if (map.TryGetValue(c, out mappedChar))
result.Append(mappedChar);
}
return result.ToString();