Comment nous pouvons trouver le prochain caractère de l'entrée. Par exemple, si je saisis le caractère "b", comment puis-je obtenir la réponse "c"?Comment trouver le caractère suivant par ordre alphabétique?
Répondre
Essayez ceci:
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 avez aucun problème lorsque le caractère est le dernier de l'alphabet.
Attendez - remplacez le '+ 1' par '+ 13' et vous obtenez ...? – Treb
Que diriez-vous:
char first = 'c';
char nextChar = (char)((int) first + 1);
qu'est-ce que cela renvoie pour 'z'? –
Cela ne fonctionnera sûrement PAS. J'essayais d'être simpliste en ne ajoutant pas de code de validation. Mais en voyant les commentaires à remettre en question, je pense que je n'aurais pas dû répondre. Devrais-je supprimer ma réponse? – Hemant
si premier char = 'z', ce code donnera le caractère suivant qui est '{', donc pas dans l'alphabet. – rogeriopvl
Peut-être la façon la plus simple est une petite fonction et un tableau des 26 caractères. Ensuite, vous pouvez décider de ce que vous voulez retourner pour 'z'.
Bien sûr, ce n'est peut-être pas ce que la question des devoirs devient ... –
Convertissez le caractère en nombre, incrémentez le nombre, puis convertissez à nouveau. Mais considérons ce qui se passera pour "z" ou "á" (Latin Small Leter A avec Aigu).
besoin d'ajouter 1 en caractère, vous obtenez le caractère suivant. Fonctionne sur les valeurs ASCII.
... jusqu'à 'y'. –
Comment ä trier? En allemand (je pense) il devrait trier après un, mais en suédois il devrait venir après å, qui à son tour est après z. Ce n'est pas une question triviale, sauf si vous vous limitez à l'anglais.
Lol.En Allemagne, nous appelons l'alphabeth dans le même ordre qu'en anglais. Les lettres supplémentaires ü, ö et ä sont hors de toute position. Hah n'a jamais pensé à ça. Pourquoi diable n'y a t-il pas une place pour ces 3 lettres O. – C4u
Notez qu'un caractère sera implicitement converti en int. Voici une solution simplifiée:
char incrementCharacter(char input)
{
return (input == 'z'? 'a': (char)(input + 1));
}
Cette valeur de changement utile BOF application Excel pour trouver la colonne précédente
public static string PrevExecelColumn (string s) { s = s.ToUpper(); char [] ac = s.ToCharArray(); int ln = ac.Longueur; 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;
}
Quelle est la réponse si j'entre "ñ"? Et C"? Et 1"? Et "."? (Question connexe: Y a-t-il des restrictions dans l'entrée?) –