迭代char数组,为每个char分配一个对应于其字母位置的整数

时间:2012-02-22 04:01:46

标签: c#

我正在尝试将字符串输入到C#控制台应用程序中,让它将字符串分解为其字符数组,然后让它遍历字符数组并为每个字符分配一个与其字母位置对应的整数( 1-26,az)并用整数填充一个新数组。

输入块直到我已经拥有的字符数组:

string plainText;
Console.Write ("String:");
plainText = Console.ReadLine();
char[] plainTextArray = plainText.ToCharArray();

不寻找完整的解决方案,更多的建议方向来寻找要实现的功能。

感谢。

1 个答案:

答案 0 :(得分:2)

这里有两种可能的解决方案:

  • char转换为int,减去适当的数量,使其介于1-52之间,并预先取数字mod 26(或.ToUpper()或ToLower()字符串把它放在1-26范围内)
  • 创建并预填充映射(类似于Dictionary<char, int>,需要char并返回相应的数字

我推荐第一个选项。

修改
基于phoog's comment,我建议使用以下方法:

  1. 使用String.ToUpper()将字符串转换为大写。
  2. 使用String.ToCharArray()创建大写字符数组。
  3. 创建一个与int[]数组大小相同的char[]数组。
  4. 遍历数组的长度,使用`(plainTextArray [i] - 'a')+ 1
  5. 将char转换为int