入力した文字の次の文字を見つける方法。たとえば、「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));
}
おそらく最も簡単な方法は、小さな関数と26文字の配列です。次に、「z」に対して何を返すかを決定できます。
文字を数値に変換し、数値を増やしてから元に戻します。
しかし、「z」または「á」(Acuteを含むラテン語小文字A)で何が起こるかを検討してください。
この変更値は、前の列を見つけるために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();
}
Äはどのように並べ替えますか?ドイツ語(私は思う)ではaの後にソートする必要がありますが、スウェーデン語ではåの後に来るはずです。英語に限定しない限り、これは簡単な質問ではありません。
次の文字を取得するには、文字に1を追加するだけです。 ASCIIの値で機能します。