2016-09-05 6 views
0

문자를 숫자로 변환해야합니다. 다음은이 Z는 것 ... B 조 02이 될 것이다, 01이 될 것이다 (26)알파벳의 문자 위치를 C#의 숫자로 변환

내 의사 :

variable = 'C' 

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

이 작업을 수행 할 다른 방법이있을거야가 있는지 확인하십시오.

+1

'variable '이 올바른 범위에 있는지 확인해야하지만'variable -'A''을 시도하십시오 ... –

+1

글자 그대로 01? 0이 필요 하신가요? – Paparazzi

+0

악센트, 소문자 등을 처리해야합니까? –

답변

6

시도 :

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

그 편지는 모두 대문자 ASCII 문자가있는 경우는 다음과 같이 그것을 쉽게 할 수 있습니다

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

각 캐릭터는 자신의 아스키 코드의 경우, 예를 들어 "A"시작이 65에서 기본적으로 당신은 각 캐릭터로부터 64를 뺄 수 있고 당신은 당신의 번호를 얻습니다. "A"- 64 = 1 "B"- 64 = 2 ...

1
private String Number2String(int number, bool isCaps) 
{ 
    Char c = (Char)((isCaps ? 65 : 97) + (number - 1)); 
    return c.ToString(); 
} 
1
int charToDigit(char character){ 
    return character-64; //or character-0x40 if you prefer hex 
} 

이 단순히 대응 INT 할 ASCII 문자를 변환 1.

로 풀다운 것

'A'는 ASCII에서 65 또는 0x41이므로 64./0x40을 뺀 값이 1이됩니다. 'A'가 0이되도록하려면 0x40을 빼십시오.