C#中的方法返回给定字符的直接文本字符

时间:2015-03-10 17:21:17

标签: c# .net function character

如何在c#中实现一个返回给定文本字符的直接文本字符的函数。字符应按字母顺序排列。 示例:给出角色" C"该方法应返回字符" D"。

3 个答案:

答案 0 :(得分:5)

char c = 'C';
char i = (char)(c + 1);
System.Diagnostics.Debug.WriteLine(i);

它会将'D'输出到Debug Output窗口。

答案 1 :(得分:1)

这是一个应该做你想要的方法。但是,没有检查非字母字符。

public static string ToNextAlpha(string str)
{
    if (str == null)
    {
        throw new ArgumentNullException("str");
        // Or you can just return "a";
    }

    var end = new StringBuilder();
    for (int index = str.Length - 1; index >= 0; index--)
    {
        char c = str[index];
        bool isZed = c == 'z' || c == 'Z';
        c = (char)(isZed ? c - 25 : c + 1);
        end.Insert(0, c);
        if (!isZed)
        {
            return str.Substring(0, index) + end;
        }
    }

    return "a" + end;
}

注意:这会将“zz”变成“aaa”,将“ZZ”变成“aAA”。如果你想在前面添加大写字母“A”,只需用你需要的逻辑改变最后一行。

答案 2 :(得分:0)

我想我找到了解决方案:

public static string GetNextLetter(string letter = null)
{
     if (IsStringNullOrEmpty(letter))
         return "A";

     char lastLetter = letter.Last();

     if (lastLetter.ToString() == "Z")
         return GetNextLetter(RemoveLastCharacter(letter)) + "A";
     else
         return RemoveLastCharacter(letter) + (char)(lastLetter + 1);
    }

欢迎任何更好的解决方案。