Vérifier si un caractère est une voyelle ou une consonne?
Est-il un code pour vérifier si un caractère est une voyelle ou une consonne? Quelque chose comme char = IsVowel? Ou le besoin de coder en dur?
case ‘a’:
case ‘e’:
case ‘i’:
case ‘o’:
case ‘u’:
case ‘A’:
case ‘E’:
case ‘I’:
case ‘O’:
case ‘U’:
pensez à une logique et d'en faire une méthode d'extension.
Cochez cette programme C# pour vérifier si un caractère d'entrée est une voyelle ou pas
:)
Cochez cette programme C# pour vérifier si un caractère d'entrée est une voyelle ou pas
OriginalL'auteur Square Ponge | 2013-07-20
Vous devez vous connecter pour publier un commentaire.
Vous pourriez faire ceci:
ou ceci:
Une fois que vous ajoutez un soutien international pour des choses comme
éèe̋ȅëêĕe̊æøи
etc. cette chaîne va être longue, mais la solution de base est le même."aeiouAEIOU".Contains(c)
.Car il n'est pas toujours le cas. Dans "Pourquoi", il est considéré comme une voyelle, tandis que dans le "Bâillement", c'est une consonne.
Ne pas InvariantCulture prendre soin de éèeȅëêĕeæøu? Donc, é = e et que vous n'avez pas à les ajouter à vous de chaîne.
No:
"é".Equals("e", StringComparison.InvariantCultureIgnoreCase)
→False
.OriginalL'auteur p.s.w.g
Voici une fonction qui fonctionne:
L'utiliser comme:
(Oui, il fonctionne vraiment, mais évidemment, c'est un blague réponse. Ne pas downvote moi. ou que ce soit.)
Pas mon downvote, mais je devine la raison en est que vous n'avez pas l'expliquer comment cela fonctionne. Aussi, il arrive à retourner vrai pour un point-moins de minuscules i (
ı
), mais pas à d'autres non-voyelle latine.Intéressant de noter que les "sans point" i "minuscule" retourne "true" - il doit être un caprice de la
char.ToUpper
. Comme pour ne pas expliquer comment il fonctionne, à l'instar de la plupart des blagues (que je n'ai clairement l'identifier comme une blague), si je dois l'expliquer, puis il prend tout le plaisir de la. Je disais qu'il y aurait deux groupes de personnes: ceux qui ont tout de suite compris comment il fonctionne, et il serait souhaitable que le "ingéniosité" (mais beaucoup de il y était), et ceux qui ne l'obtiennent pas au premier abord, mais qui peuvent avoir un moment de plaisir à essayer de le comprendre. Bien sûr, si quelqu'un ne peux pas la comprendre et de la demande, je serais heureux de les expliquer.Ce il la meilleure solution !
Ok, c'est génial! Pouvez-vous expliquer comment cela fonctionne? Aussi, vous pouvez simplement retourner le 'si' état et de réduire la ligne supplémentaire de code. 🙂
OriginalL'auteur Michael Bray
Pas. Vous avez besoin de définir d'abord ce que vous considérez comme une voyelle et une consonne. Par exemple, en anglais, “y” pourrait être une consonne (comme dans les “oui”) ou une voyelle (comme dans “par”). Des lettres comme “é” et “ü” sont sans doute les voyelles dans toutes les langues dans lesquelles ils sont utilisés, mais il semble que vous n'avez pas de considération pour eux. Principalement, vous devez définir pourquoi vous souhaitez classer les lettres comme des consonnes et des voyelles.
OriginalL'auteur Jukka K. Korpela
OriginalL'auteur DavMar
Vous pouvez utiliser "IsVowel" comme vous le vouliez. Toutefois, la seule chose est qu'il ya probablement pas de défaut en C# de la bibliothèque ou de la fonction qui fait déjà hors de la boîte, eh bien, si c'est ce que tu voulais. Vous aurez besoin de rédiger un util méthode pour cela.
Ah votre droite raté et il a été initialement écrit en Java, il est en C# et maintenant
OriginalL'auteur MilindaD
Vous pouvez utiliser la méthode d'extension:
L'utiliser comme:
OriginalL'auteur imlokesh
Cela fonctionne bien.
OriginalL'auteur ojonugwa ochalifu
Les autres méthodes de travail donnée. Ici, je suis préoccupé par la performance. Pour les deux approches, j'ai testé - l'utilisation de LINQ de la méthode et à l'aide de bits de l'arithmétique, de l'utilisation de bits de l'arithmétique a été plus de dix fois plus rapide. Résultats:
Voir https://dotnetfiddle.net/WbPHU4 pour le code dans un test avec des timings.
L'idée clé avec le masque de bits, c'est que le second bit est défini pour "a", le sixième bit est défini pour "e", etc. Ensuite, vous prenez la lettre, décale vers la gauche par sa valeur ASCII comme un entier, et voir si le bit du masque est défini. Un bit est défini dans le masque, pour chaque voyelle, et la OU les opération effectue le mettre en minuscule de la lettre en premier.
OriginalL'auteur Paul Chernoch
Pourquoi ne pas créer un tableau des voyelles/consonnes et de vérifier si la valeur est dans le tableau?
OriginalL'auteur NONE
Vous pouvez faire quelque chose comme cela.
Il voulait une idée pas de code de travail. écrit de pseudo juste pour donner une idée de ce qu'il devrait faire.
OriginalL'auteur Ehsan
OriginalL'auteur Raghu
Essayez ceci:
OriginalL'auteur user3587709
Regardez ce code pour vérifier les deux Voyelles et de Consonnes , C#
OriginalL'auteur Dipo