web-dev-qa-db-ja.com

次の文字をアルファベット順に見つける方法は?

入力した文字の次の文字を見つける方法。たとえば、「b」という文字を入力した場合、「c」という答えを得るにはどうすればよいですか。

24
MAC

これを試して:

char letter = 'c';

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

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

このようにして、charがアルファベットの最後の場合でも問題はありません。

38
rogeriopvl

どうですか:

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

Charは暗黙的にintにキャストされることに注意してください。ここに簡略化されたソリューションがあります:

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

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

2
Colin Pickard

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

しかし、「z」または「á」(Acuteを含むラテン語小文字A)で何が起こるかを検討してください。

1
Richard

この変更値は、前の列を見つけるために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;
    }  
0
Moisey Oysgelt

これを試して :

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

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

0
erikkallen

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

0
Nakul Chaudhary