本文介绍了对字母打印数字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想要波纹管格式的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


这篇关于对字母打印数字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-26 07:48
查看更多