web-dev-qa-db-fra.com

Comment trouver le prochain caractère par ordre alphabétique?

Comment pouvons-nous trouver le prochain caractère du caractère saisi? Par exemple, si je saisis le caractère "b", comment puis-je obtenir la réponse "c"?

23
MAC

Essaye ça:

char letter = 'c';

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

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

De cette façon, vous n'avez aucun problème lorsque le caractère est le dernier de l'alphabet.

35
rogeriopvl

Que diriez-vous:

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

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));
}
5
JoshL

Le moyen le plus simple est peut-être une petite fonction et un tableau de 26 caractères. Ensuite, vous pouvez décider de ce que vous voulez retourner pour "z".

2
Colin Pickard

Convertissez le caractère en nombre, incrémentez-le puis reconvertissez-le.

Mais considérons ce qui se passera pour "z" ou "á" (petit latin Leter A avec aigu).

1
Richard

Cette valeur de changement utile pour l'application Excel pour rechercher la colonne précédente

chaîne publique statique PrevExecelColumn (chaîne 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;
    }  
0
Moisey Oysgelt

Essaye ça :

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

Comment est-ce que trier? En allemand (je pense), cela devrait trier après a, mais en suédois, il devrait être après å, qui après z. Ce n'est pas une question triviale, à moins que vous ne vous limitiez à l'anglais.

0
erikkallen

il suffit d’ajouter 1 caractère pour obtenir le caractère suivant. Cela fonctionne sur les valeurs ASCII.

0
Nakul Chaudhary