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

C# 如何按字母顺序找出下一个字符?,c#,char,C#,Char,如何找出输入字符的下一个字符。例如,如果我输入了字符“b”,那么如何得到答案“c”?如何: char first = 'c'; char nextChar = (char)((int) first + 1); 也许最简单的方法是一个小函数和一个26个字符的数组。然后,您可以决定要为“z”返回什么。将字符转换为数字,增加数字,然后再转换回 但是考虑一下“Z”或“A”会发生什么(拉丁文小写字母A是尖锐的)。 < P>需要在字符中加1,你得到下一个字符。 它适用于ASCII值。尝试以下方法: cha

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

如何:

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

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

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


但是考虑一下“Z”或“A”会发生什么(拉丁文小写字母A是尖锐的)。

< P>需要在字符中加1,你得到下一个字符。 它适用于ASCII值。

尝试以下方法:

char letter = 'c';

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

else
    nextChar = (char)(((int)letter) + 1);
这样,当字符是字母表的最后一个字符时,您就不会有任何问题。

ä如何排序?
在德语中(我认为)它应该排在a之后,但在瑞典语中它应该排在å之后,而å又排在z之后。这不是一个简单的问题,除非您仅限于英语。

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

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

此更改值对于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();
}

“z”的回报是什么?这肯定行不通。我试图通过不添加验证代码来简化。但是看到这些评论,我想我不应该回答。我应该删除我的答案吗?如果first char='z',此代码将给出下一个字符,即{',因此不在字母表中。不,足够多的变化和答案讨论将给提问者提供所需的思考问题的练习,它将返回ascii表()中的下一个值。当然,您还可以添加一个简单的:if(nextchar>'z')nextChar='a';(添加更多的逻辑(即大写字母)也很简单)如果我输入“ñ”、“ç”、“1”和“.”答案是什么?(相关问题:输入中有任何限制吗?)这是其中一个“不要假设它在其他国家也适用”我想是这样的。给你提供文件名预期结果的东西可能不是来自土耳其或中国的人容易阅读的东西。等等-用“+13”替换“+1”,你会得到…?注意,你可以写
(char)(字母+1)
insteadLol。在德国,我们用与英语相同的顺序来称呼字母。多余的字母u、ö和ä不在任何位置。哈从未想过这一点。为什么这3个字母O.O没有位置。