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 に答える
2

おそらく最も簡単な方法は、小さな関数と 26 文字の配列です。次に、「z」に何を返したいかを決めることができます。

于 2009-06-22T09:18:25.180 に答える
1

文字を数値に変換し、数値を増やしてから元に戻します。

しかし、"z" や "á" (Acute を伴うラテン小文字 A) の場合はどうなるか考えてみてください。

于 2009-06-22T09:19:01.683 に答える
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

ä はどのように並べ替えますか? ドイツ語では (私が思うに) a の後にソートする必要がありますが、スウェーデン語では å の後に配置する必要があり、それは z の後に配置されます。英語に限定しない限り、これは些細な質問ではありません。

于 2009-09-03T10:03:35.157 に答える
0

次の文字を取得するには、文字に1を追加するだけです。ASCII 値で動作します。

于 2009-06-22T09:19:43.663 に答える