本文介绍了对字母打印数字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想要波纹管格式的C#代码(函数).
其中A = 1,B = 2,C = 3,D = 4,...... Z = 26
AA = 27,AB = 28,AC = 29 ... AZ = 52
BA = 53,BB = 54,BC = 55,...... BZ = 78
等等...
打印输出类似.
字母A,数字为1
字母B,数字为2
依此类推...
I want c# code (function) for bellow formats.
Where A=1, B=2, C=3, D=4, ......Z=26
AA= 27, AB=28,AC=29...... AZ=52
BA=53, BB=54,BC=55, ......BZ=78
And so on...
print output like.
Alphabet A, Number is 1
Alhphabet B, Number is 2
And so on...
推荐答案
public static string ConvertAlpha(int value)
{
const int a = (int)'A';
value = value - 1;
var returnValue = new StringBuilder();
while (value > -1)
{
var remainder = value % 26;
returnValue.Insert(0, (char)(a + remainder));
value = value / 26 - 1;
}
return returnValue.ToString();
}
public static int ConvertNumber(string value)
{
const int a = (int)'A' - 1;
int returnValue = 0;
foreach (var character in value.ToUpper())
{
returnValue *= 26;
returnValue += (int)character - a;
}
return returnValue;
}
似乎可以正常使用.
Seems to work right.
public static string ToExcelName(int num)
{
List<char> digits = new List<char>();
do
{
int rem;
num = Math.DivRem(num, 26, out rem);
digits.Add(Convert.ToChar(65+rem));
} while (num != 0);
return string.Join(null, digits.Reverse<char>());
}
干杯
安迪
Cheers
Andi
这篇关于对字母打印数字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!