如何按字母顺序找出下一个字符?
我们如何才能找到输入的下一个字符。 例如,如果我输入了字符“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(); }