如何按字母顺序找出下一个字符直到 ZZ

How to find out next character alphabetically till ZZ

我正在使用以下代码查找下一个字母表。

    string rev = "Value";
char C1 = char.Parse(rev);
c1++;

但是 rev 字符串的值不以 Z 结尾,它上升到最后一个值 AZ。 (如 excel 列仅供参考)。 因此,上面的代码不适用于 AA、AB 等值,也不会增加它。 如果我将 rev 值为“AA”,我不确定如何找到下一个值。谁能指导一下。

这是一个简单明了的方法,虽然可能有点冗长或昂贵。

它期望输入格式正确,如果它不只包含字母 A-Z,则会抛出异常。

public static string Increment(string input)
{
    List<char> chars = input.ToList();
    
    // Loop over the characters in the string, backwards
    for (int i = chars.Count - 1; i >= 0; i--)
    {
        if (chars[i] < 'A' || chars[i] > 'Z')
        {
            throw new ArgumentException("Input must contain only A-Z", nameof(input));
        }
        
        // Increment this character
        chars[i]++;
        
        if (chars[i] > 'Z')
        {
            // Oops, we overflowed past Z. Set it back to A, and ...
            chars[i] = 'A';
            
            // ... if this is the first character in the string, add a 'A' preceeding it
            if (i == 0)
            {
                chars.Add('A');
            }
            // ... otherwise we'll continue looping, and increment the next character on
            // the next loop iteration
        }
        else
        {
            // If we didn't overflow, we're done. Stop looping.
            break;  
        }
    }
    
    return string.Concat(chars);
}

测试用例:

A -> B
B -> C
Z -> AA
AA -> AB
AB -> AC
AZ -> BA
BC -> BD
ZZ -> AAA

dotnetfiddle 上查看。