您可以执行以下操作:将字符串 AAA 想象为一个数字,即 A*26^2 + A*26^1 + A*26^0
(以 26 为基数,因为有那么多字母)
拆分字符串,将值 A 到 Z 转换为 1 到 26(前面的空白 = 0),您就完成了:
A = 0*26^2 + 0*26^1 + 1*26^0 => 1
B = 2 => 2
...
Z = 26 => 26
AA = 1 * 26^1 + 1 => 27
...
ZZ = 26*26^1 + 26 = 702
...
ZZZ = 26*26^2 + 26*26^1 + 26 => 18278
把它包起来
public int LetterCodeToInt(String LetterCode)
{
//fill up whitespaces in front.
String s = LetterCode.PadLeft(3, '_').ToUpper();
int value = 0;
int k = s.Length -1;
for (int i = 0; i < s.Length; i++)
{
if (s[i] != '_')
{
//ASCII "A" is 65, subtract 64 to make it "1"
value += (((int)s[i]) - 64) * Convert.ToInt32(Math.Pow(26, k));
}
k--;
}
return value;
}
你可以这样做:
if (LetterCodeToInt("AAA") > LetterCodeToInt("AZ")){
}