Comment trouver le prochain caractère par ordre alphabétique?
Question
Comment pouvons-nous trouver le prochain caractère du caractère saisi? Par exemple, si j’ai saisi le caractère " b " alors comment puis-je obtenir la réponse "c"?
La solution
Essayez ceci:
char letter = 'c';
if (letter == 'z')
nextChar = 'a';
else if (letter == 'Z')
nextChar = 'A';
else
nextChar = (char)(((int)letter) + 1);
Ainsi, vous n'avez aucun problème lorsque le caractère est le dernier de l'alphabet.
Autres conseils
Que diriez-vous de:
char first = 'c';
char nextChar = (char)((int) first + 1);
Notez qu'un caractère sera implicitement converti en un entier. Voici une solution simplifiée:
char incrementCharacter(char input)
{
return (input == 'z'? 'a': (char)(input + 1));
}
Le moyen le plus simple est peut-être une petite fonction et un tableau des 26 caractères. Ensuite, vous pouvez décider de ce que vous voulez retourner pour 'z'.
Convertissez le caractère en nombre, incrémentez-le puis reconvertissez-le.
Mais considérez ce qui se passera pour & z; z " ou & amp; " (Petit latin Leter A avec aigu).
devez simplement ajouter 1 caractère pour obtenir le caractère suivant. Cela fonctionne sur les valeurs ASCII.
Comment & # 228; Trier? En allemand (je pense), il devrait être classé après a, mais en suédois, il devrait être placé après & # 229 ;, après z. Ce n'est pas une question triviale, à moins que vous ne vous limitiez à l'anglais.
Cette valeur de modification utile pour l'application Excel pour rechercher la colonne précédente
chaîne statique publique PrevExecelColumn (string s) { s = s.ToUpper (); char [] ac = s.ToCharArray (); int ln = ac.Length; pour (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;
}
Essayez ceci:
public string GetNextAlphabetLetter(int indice) {
return ((char)('A' + indice)).ToString();
}