En Java, comment puis-je déterminer si un tableau de caractères contient un caractère particulier?
Voici ce que j'ai:
char[] charArray = new char[] {'h','e','l','l','o'};
Je veux écrire quelque chose à l'effet de:
if(!charArray contains 'q'){
break;
}
Je me rends compte que .contient le() ne peut pas être utilisé ici. Je suis juste en utilisant "contient" pour illustrer ce que je suis en train de faire.
source d'informationauteur Aei
Vous devez vous connecter pour publier un commentaire.
Les extraits suivants de test pour le "ne contient pas", comme illustré dans l'exemple de pseudo-code dans la question. Pour une solution explicite en boucle, ce faire:
Une autre alternative, en utilisant le fait que
String
fournit uncontains()
méthode:Encore une autre option, en utilisant cette fois
indexOf()
:Voici une variante de Oscar de la première version qui n'utilise pas de boucle for-each.
Vous pourriez avoir un booléen variable qui est définie sur false avant la boucle, puis faire "faire quelque chose" définir la variable à true, ce qui vous pu tester pour après la boucle. La boucle peut également être enveloppé dans un appel de fonction, puis utilisez simplement "return true" à la place de la pause, et ajouter un "return false" déclaration après la boucle for.
Cette méthode fait le tour.
Exemple d'utilisation:
Autre façon:
Vous pouvez parcourir le tableau ou vous pouvez convertir en un
String
et l'utilisationindexOf
.La création d'une nouvelle
String
est un peu inutile, mais c'est probablement le tersest code. Vous pouvez également écrire une méthode pour imiter les effets sans avoir à supporter les frais généraux.Quelques autres options si vous ne voulez pas que votre propre "Utils"-classe:
L'utilisation d'Apache commons lang (ArrayUtils):
Ou utilisez le builtin Les tableaux:
Ou utiliser le Chars classe de Google Goyave:
Légèrement hors-sujet, les Caractères de la classe permet de trouver un subarray dans un tableau.
De NumberKeyListener source code. Cette méthode qu'ils utilisent pour vérifier si le char est contenue dans les tableau de caractères acceptés:
Il est similaire à @ÓscarLópez solution. Peut-être un peu plus rapide à cause de l'absence de foreach itérateur.