10
votes

Vérifiez si la chaîne de chaîne [] est dans ArrayList

Je viens de construire un récepteur de diffusion avec lequel je peux obtenir les messages texte entrants, que j'ai divisé le message texte lorsqu'il y a un espace et enregistrez-le dans une chaîne [] .

Besoin de vérifier si dans ce chaîne [] est quelque chose de ma base de données. Pour cela, j'ai créé un ArrayList , qui obtient toutes les entrées de la colonne correspondante. Maintenant, j'ai besoin de vérifier si une chaîne de mon arraylist est la même dans ma chaîne [] dans le message texte, mais je ne sais pas comment réaliser cela. < / p>

Y a-t-il un moyen facile et rapide de vérifier que, je dois aussi savoir quelle chaîne est dans les deux?

smileysmsrecefeiver: xxx


1 commentaires

Peut-on attribuer des valeurs directement à la liste de la fonction Split ??


4 Réponses :


2
votes

Vous pouvez itérer sur la matrice (par exemple avec un pour en boucle sur Splitd.length ), interrogeant votre liste avec myList.Contains (écarté [i] ) . La requête retournera un booléen .

Si vous devez vérifier si les éléments Tous les éléments dans le tableau sont présents dans la liste, il existe une alternative confortable avec myList.Containsall (Arrays.Aslist (Érays.Aslist (Splitd))

Il existe une autre alternative concise sans boucle pour vérifier si N'importe quel élément N'importe quel article est présent dans la liste: xxx

splitlist.isempty () retournera ensuite false , si n'importe quel article de Les listes correspondent à la correspondance.

Le contenu de la division affichera toutes les chaînes qui sont assorties.


2 commentaires

Il pourrait être positif d'ajouter une condition de sortie à la boucle d'efficacité. L'OP ne veut que savoir si au moins un élément est contenu dans la liste.


Certainement, il serait positif de casser la boucle une fois que vous avez la réponse - je considérais simplement le flux de contrôle en dehors de la portée de la question



15
votes

Si vous avez un chaîne mystring code> et un arraylist myListofstrings code>, vous pouvez vérifier si mystring code> est dans la liste comme suit:

for( String s : splitted ) {
   if( SmileyList.contains( s ) ) {
     //Do what you need to do if the string is in the SmileyList.
   }
}


5 commentaires

Thx pour votre réponse, mais comment je découvre maintenant une sorte de chaîne dans les deux?


Si si (smileyliste.Contains (s)) renvoie true , la chaîne qui était dans les deux est égale à s .


Je ne suis pas tout à fait sûr de comprendre votre question. Avez-vous besoin de l'index / position de s dans la chaîne d'origine? Avez-vous besoin de la valeur de s ? Avez-vous besoin de l'index de S dans fractionné ?


La valeur de s, ai-je besoin, je pense. J'ai besoin de savoir quelle chaîne est dans le tableau et la chaîne [] ...


D'accord - je vais essayer d'expliquer plus en profondeur. Nous passons à travers les chaînes dans le tableau scissocid un par un, créant une référence s sur celui que nous travaillons actuellement. Nous avons ensuite "Demander" le "code> smooryliste" / code> s'il contient une chaîne égale à s . Si tel est le cas, nous savons que s que nous avons eu formulaire fractionné (cela signifie qu'il est dans divisé ) est également dans smileyliste ce qui signifie qu'il est dans les deux. La chaîne dans la liste arraylist et la chaîne [] est s . Nous faisons ensuite ce qui doit être fait dans cette situation.



3
votes
String array[] = ... ; 
List<String> list = ... ;
// check if anything in array is in list
for(String str : array)
    if(list.contains(str)) doSomething() ;
If you want do something for every match, the code above will work. If you only want to do something once if there was a match (and not for every match), you will need to add a break statement in the if sentence.

0 commentaires

1
votes

Selon la taille de votre tableau et de votre arraylist et combien de fois vous y accéderez, vous voudrez peut-être utiliser un hashset au lieu d'une arracheList afin que vous puissiez obtenir une recherche rapide avec le hachée contient () méthode au lieu de devoir itération à travers le tableau. Quelque chose comme ceci: xxx


0 commentaires