[英]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.