生成(伪)base-26数字表示(类似于Excel列名)

时间:2018-03-04 08:05:00

标签: c#

我想从整数索引生成连续的字母字符串,用作自动对象名称。我知道如何从int32生成base-26,需要7位数。但这不是我想要的,因为对于低指数,我仍然会得到7位数,我想从a,b,c开始得到短名称......

禁止前导零(a' s)也不是一个选项,因为从一位数到两位数的名称的转换是不规则的:

a,...,z,ba,bb,bc,...,zy,zz,baa,bab,...

就像在这段代码中一样:

    public static string autoVarName(int i)
    {
        string result = "";

        do
        {
            int j = i % 26;
            result = (char)('a'+j) + result;
            i /= 26;
        }
        while (i>0);

        return result;
    }

我想得到的与Excel生成列名的方式非常相似:

a,...,z,aa,ab,ac,...,zy,zz,aaa,aab,...

我似乎无法绕过如何做到这一点。任何搜索都提出了真正的基数为26的数字。有谁知道如何修改上面的代码来得到我想要的东西?

0 个答案:

没有答案