Je suis nouveau dans la programmation et je travaille sur une fonction qui renvoie vrai si un mot est présent dans une phrase. J'ai essayé le indexOf()
mais j'ai également rencontré un certain problème avec cette approche :
Supposons que ma phrase soit I am a, Java Programmer.
Si nous cherchons le mot ram
avec le indexOf()
alors il retournera true
parce que ram
est présent dans Programmer
alors que la sortie correcte devrait être false
como ram
n'est pas présent en tant que mot mais en tant que motif.
Comment puis-je contourner ce problème ? Le code que j'utilise pour l'instant est le suivant :
boolean isPresent(String word, String sentence)
{
if(sentence.indexOf(word) >= 0)
return true;
else
return false;
}
NOTE : Le mot ram
C'est juste un exemple pour montrer l'un des problèmes de mon approche actuelle. ram
seulement tout le temps. Le mot peut être n'importe lequel comme dire a
qui est suivi d'une virgule dans la phrase ci-dessus.
UPDATE : Merci à tous ceux qui ont apporté leurs commentaires et leurs solutions. J'en ai sélectionné une comme réponse acceptée (j'en aurais sélectionné plus si j'en avais eu la possibilité :-)), mais beaucoup m'ont été utiles.
2 votes
Vous pourriez utiliser la méthode string.split et vérifier ensuite si le tableau résultant contient votre mot.
3 votes
Au fait, vous pouvez simplifier la définition de cette fonction de la manière suivante :
return sentence.indexOf(word) >= 0;
-sentence.indexOf(word) >= 0
est soittrue
oufalse
Donc, selon la situation, cela signifie soitreturn true;
oureturn false;
.0 votes
La question est claire et complète, mais je peux trouver la réponse à cette question de multiples fois à travers Stackoverflow et et de nombreux autres endroits.
0 votes
@AbuSulaiman dans ce cas, vous devriez voter pour fermer cette queztion comme un doublon, plutôt que de simplement garder un commentaire.
0 votes
Voir aussi stackoverflow.com/questions/15480811/
0 votes
Voir aussi stackoverflow.com/questions/3879160/java-string-search
0 votes
Voir aussi stackoverflow.com/questions/15779632/