37

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

4

9 回答 9

51

试试这个:

char letter = 'c';

if (letter == 'z')
    nextChar = 'a';
else if (letter == 'Z')
    nextChar = 'A';

else
    nextChar = (char)(((int)letter) + 1);

这样,当字符是字母表的最后一个时,您就不会遇到麻烦。

于 2009-06-22T09:28:36.907 回答
19

怎么样:

char first = 'c';
char nextChar = (char)((int) first + 1);
于 2009-06-22T09:17:40.750 回答
10

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

char incrementCharacter(char input)
{
    return (input == 'z'? 'a': (char)(input + 1));
}
于 2014-08-09T04:05:29.120 回答
2

也许最简单的方法是一个小函数和一个由 26 个字符组成的数组。然后,您可以决定要为“z”返回什么。

于 2009-06-22T09:18:25.180 回答
1

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

但是考虑一下“z”或“á”(拉丁小写字母 A 和 Acute)会发生什么。

于 2009-06-22T09:19:01.683 回答
0

只需在字符中添加 1 即可获得下一个字符。它适用于 ASCII 值。

于 2009-06-22T09:19:43.663 回答
0

ä 是如何排序的?在德语中(我认为)它应该在 a 之后排序,但在瑞典语中它应该在 å 之后,而后者又在 z 之后。这不是一个微不足道的问题,除非您将自己限制在英语范围内。

于 2009-09-03T10:03:35.157 回答
0

此更改值可用于 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;
   }  
于 2016-12-12T01:41:47.870 回答
0

试试这个 :

public string GetNextAlphabetLetter(int indice) {
  return ((char)('A' + indice)).ToString();
}
于 2018-06-20T16:43:11.410 回答