如何在c#中实现一个返回给定文本字符的直接文本字符的函数。字符应按字母顺序排列。 示例:给出角色" C"该方法应返回字符" D"。
答案 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);
}
欢迎任何更好的解决方案。