簡體   English   中英

將字母在字母表中的位置轉換為C#中的數字

[英]Converting letter position in the alphabet to numbers in C#

我需要將字母轉換為數字。 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...

當然必須有另一種方式來做到這一點。

嘗試:

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。

由於ASCII中的“ A”為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();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM