如何按字母顺序找出下一个字符?

我们如何才能找到输入的下一个字符。 例如,如果我输入了字符“b”,那么如何得到答案“c”?

试试这个:

char letter = 'c'; if (letter == 'z') nextChar = 'a'; else if (letter == 'Z') nextChar = 'A'; else nextChar = (char)(((int)letter) + 1); 

这样,当char是字母表的最后一个时,你就没有问题了。

怎么样:

 char first = 'c'; char nextChar = (char)((int) first + 1); 

请注意,char将隐式转换为int。 这是一个简化的解决方案:

 char incrementCharacter(char input) { return (input == 'z'? 'a': (char)(input + 1)); } 

也许最简单的方法是一个小function和26个字符的数组。 然后你可以决定你要为’z’返回什么。

将字符转换为数字,递增数字然后转换回来。

但请考虑一下“z”或“á”会发生什么(拉丁文小A与急性)。

需要添加1个字符才能得到下一个字符。 它适用于ASCII值。

ä怎么样? 在德语中(我认为)它应该在a之后排序,但在瑞典语中它应该在å之后,而å后面是z之后。 这不是一个微不足道的问题,除非你限制自己使用英语。

此更改值对Excel应用程序有用,可用于查找上一列

public static string PrevExecelColumn(string s){s = s.ToUpper(); char [] ac = s.ToCharArray(); int ln = ac.Length; for(int i = ln – 1; i> -1; i–){char c = ac [i];

  if (c == 'A') { ac[i] = 'Z'; continue; } ac[i] = (char)(((int)ac[i]) - 1); break; } s = new string(ac); return s; } 

试试这个 :

 public string GetNextAlphabetLetter(int indice) { return ((char)('A' + indice)).ToString(); }