5

我有以下代码:

string str="A";

我想以编程方式获取下一个字母字符(如 B、C、D、E 等)

任何人都可以建议这样做的方法吗?

4

4 回答 4

10

而不是整个字符串,使用Char.

char aChar = 'A';

aChar++; // After this line executes, `aChar` is `B`
于 2012-10-11T11:34:59.883 回答
4

如果您正在寻找类似 "A".. "Z"..."AA", "AB"..."ZZ"..."AAA"... 的东西,这里是代码,

  public static string IncrementString(this string input)
    {
        string rtn = "A";
        if (!string.IsNullOrWhiteSpace(input))
        {
            bool prependNew = false;
            var sb = new StringBuilder(input.ToUpper());
            for (int i = (sb.Length - 1); i >= 0; i--)
            {
                if (i == sb.Length - 1)
                {
                    var nextChar = Convert.ToUInt16(sb[i]) + 1;
                    if (nextChar > 90)
                    {
                        sb[i] = 'A';
                        if ((i - 1) >= 0)
                        {
                            sb[i - 1] = (char)(Convert.ToUInt16(sb[i - 1]) + 1);
                        }
                        else
                        {
                            prependNew = true;
                        }
                    }
                    else
                    {
                        sb[i] = (char)(nextChar);
                        break;
                    }
                }
                else
                {
                    if (Convert.ToUInt16(sb[i]) > 90)
                    {
                        sb[i] = 'A';
                        if ((i - 1) >= 0)
                        {
                            sb[i - 1] = (char)(Convert.ToUInt16(sb[i - 1]) + 1);
                        }
                        else
                        {
                            prependNew = true;
                        }
                    }
                    else
                    {
                        break;
                    }

                }
            }
            rtn = sb.ToString();
            if (prependNew)
            {
                rtn = "A" + rtn;
            }
        }

        return rtn.ToUpper();
    }
于 2017-05-17T17:16:53.380 回答
2
var str = "A";
char firstChar = str[0];
char nextChar = (char)((int)firstChar + 1);
var newStr = nextChar.ToString();
于 2012-10-11T11:36:01.753 回答
0

我正在寻找同样的东西,我正在使用字符串,所以我需要转换它。

如果你的变量是字符串,你可以这样做:

string foo = "b";
char result = Convert.ToChar(foo[0] + 1); //Will result to 'c'
于 2017-07-05T03:43:55.557 回答