IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

[String] Recherche si un mot est contenu dans une phrase


Sujet :

avec Java

  1. #1
    Membre habitué
    Inscrit en
    Septembre 2009
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 137
    Points : 157
    Points
    157
    Par défaut [String] Recherche si un mot est contenu dans une phrase
    Bonjour,

    Je m'explique un peu plus clairement que le titre. En fait, j'ai deux String:

    a="Rocky"
    b un string quelconque.

    Dans mon application, je voudrais faire une boucle pour que la fonction ne soit lancé uniquement lorsque b contient a. A savoir que b contienne Rocky (exemples: "Je m'appelle Rocky", "Rocky Balboa, un super film", etc...).

    Donc je fais un if mais en recherchant dans les docs, je ne vois pas comment je lui demander de rechercher dans b, a et si a existe alors on continue sinon c'est mort.

  2. #2
    Membre éprouvé
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Points : 1 078
    Points
    1 078
    Par défaut
    Je ne suis pas sûr d'avoir compris ta dernière phrase, mais pour rechercher une chaîne dans une seconde, la classe String propose la méthode contains(), voire même la méthode indexOf() qui te renvoie la position de la première chaîne dans la seconde.

  3. #3
    Membre habitué
    Inscrit en
    Septembre 2009
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 137
    Points : 157
    Points
    157
    Par défaut
    Citation Envoyé par Deaf Voir le message
    Je ne suis pas sûr d'avoir compris ta dernière phrase, mais pour rechercher une chaîne dans une seconde, la classe String propose la méthode contains(), voire même la méthode indexOf() qui te renvoie la position de la première chaîne dans la seconde.
    Ce serait un truc du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    a = "Rocky";
    b = "Je m'apelle Rocky";
     
    if ( a est contenu dans b)
    { ...}
    else{...}
    Je vais essayer tes fonctions et je t'en dis des nouvelles.

    J'ai essayé ça, ça marche pas trop mal. Y a-t'il mieux optimisé?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (b.indexOf(a) > 0) {
    ..
    }else
    {
    ..
    }

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Points : 562
    Points
    562

  5. #5
    Membre éprouvé
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Points : 1 078
    Points
    1 078
    Par défaut
    Jette un oeil à la Javadoc, elle est bien faite et permet d'éviter certaines erreurs.

    Comme je te l'avais dit, indexOf est utile si tu souhaites connaître la position. Dans ton cas, il semblerait que contains suffit.

    En plus, ta comparaison est fausse:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (b.indexOf(a) > 0) {
    Car si ton mot est présent en début de phrase, la fonction indexOf renvoie 0. Quand le mot n'est pas présent, elle renvoie -1. Cette information est présente dans la Javadoc.

    Pour l'optimisation, je pense qu'avec le contains à la place de l'indexOf, tu ne pourras pas faire mieux.
    Ceci dit, sur une telle portion de code, on peut difficilement parler "d'optimisation".

  6. #6
    Membre habitué
    Inscrit en
    Septembre 2009
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 137
    Points : 157
    Points
    157
    Par défaut
    Merci ça marche nickel .

    Je mets en résolu.

  7. #7
    Membre habitué
    Inscrit en
    Mars 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2008
    Messages : 254
    Points : 188
    Points
    188
    Par défaut
    boolean bContientUneChaine = false;
    if (b!= null && a != null) {
    bContientUneChaine= (b.indexOf(a) != -1);
    }

    return bContientUneChaine;

  8. #8
    Membre habitué
    Inscrit en
    Septembre 2009
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 137
    Points : 157
    Points
    157
    Par défaut
    Citation Envoyé par Sun03 Voir le message
    boolean bContientUneChaine = false;
    if (b!= null && a != null) {
    bContientUneChaine= (b.indexOf(a) != -1);
    }

    return bContientUneChaine;
    Un peu compliqué ça non?

  9. #9
    Membre habitué
    Inscrit en
    Mars 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2008
    Messages : 254
    Points : 188
    Points
    188
    Par défaut
    bonjour,

    pour toi, la ligne suivante est suffit : bContientUneChaine= (b.indexOf(a) != -1);

    mais tu peux créer une méthode pour utiliser le code ci-dessus avec deux paramètre b et a.

    a+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/08/2014, 15h27
  2. Réponses: 2
    Dernier message: 21/04/2014, 21h26
  3. [Batch] Savoir si un mot est contenu dans une variable
    Par masiuxus dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 31/10/2010, 13h57
  4. Instancier une classe dont le nom est contenu dans une String
    Par fyque dans le forum Général Python
    Réponses: 15
    Dernier message: 13/06/2008, 12h33
  5. [RegEx] Rechercher si mot est contenu dans un autre
    Par Seb33300 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 24/08/2007, 23h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo