将字母表中的字母位置转换为C#中的数字

本文关键字:数字 转换 字母表 位置 | 更新日期: 2023-09-27 18:05:37

我需要将字母转换为数字。A是01,B是02。。。Z应该是26。

我的伪代码:

variable = 'C'
if (variable = 'A'){
counter = 01}else if (variable = 'B'){
counter = 02}else if (variable = 'C'){
counter = 03
}elseif...

肯定有另一种方法可以做到这一点。

将字母表中的字母位置转换为C#中的数字

尝试:

var x = 'A' - 'A' + 1 //01
var x = 'Z' - 'A' + 1 //26

如果这些字母都是大写ASCII字母,你可以很容易地这样做:

int ascii = (int)Char.GetNumericValue(variable);
if(ascii >= 65 && ascii <= 90)
{
    counter = ascii - 64;
}
else if //...

每个字符都有自己的ascii码,例如"A"从65开始,所以基本上你只需要从每个字符中减去64就可以得到你的数字。"A"-64=1"B"-64=2…

int charToDigit(char character){
    return character-64; //or character-0x40 if you prefer hex
}

这将简单地将ASCII字符转换为相应的int,并将其下拉到1。

由于"A"在ASCII中是65或0x41,因此在减去64./0x40时会得到1。如果希望"A"为0,则减去0x40。

private String Number2String(int number, bool isCaps)
{
    Char c = (Char)((isCaps ? 65 : 97) + (number - 1));
    return c.ToString();
}