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

Langage Java Discussion :

[String] Recherche facilité


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut [String] Recherche facilité
    Bonjour à tous,

    voila mon problème:

    j'ai des objets "machine" qui ont un nom (c'est une String).
    Mon interface graphique permet de consulter et d'afficher toutes les machines contenues dans un fichier de base de données.

    J'arrive à faire une recherche et à afficher dans ma JTable toutes les machines portant le même nom (par exemple "V4 super").
    Le problème est qu'il faut tapper la chaine recherchée à l'exacte !

    J'aimerais optimiser ma fonction de recherche en obligeant l'utilisateur à ne taper que quelques lettres du nom (par exemple "V") et que le système recherche dans mes noms de machine toutes les machines dont le nom commence par la lettre "V".

    Le système affichera donc les V4; les V4 super, les V4 truc, etc...

    Quelqu'un a-t-il déjà ecrit ce genre de fonction ?

    Merci d'avance. Régis.

    PS: plopinou si tu as la réponse, je me demande si tu n'as pas fait la même application que j'écrit en ce moment !!! (private Joke)

  2. #2
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    salut (re)

    la 1ere chose à laquelle je pense est d'implémenter un listener sur la zone de texte où l'utilisateur tape les lettres. l'action du listener étant de chercher la chaîne de caractères tapées dans les noms de tes machines (au début de chaque nom)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    pour toutes les machines
    {
       si (chaine tapée de taille T == sous-chaine de 0 à T-1 du nom de la machine)
       {
            // le nom de la machine répond au critère
            faire l'action que tu veux avec la machine
            (inscrire son nom dans un combobox?)
       }
    }
    avec ça tu peux par exemple retrouver toutes les machines correspondant au critère et afficher leur nom dans un combobox

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 46
    Par défaut
    Salut
    si j'ai bien compris, tu veux rechercher un String en n'ayant que le début de la chaine.
    Si tu le fais en SQL, tu as l'opérateur LIKE "V%"
    et en java, la classe String a une méthode startsWith(String) qui peut correspondre à ce dont tu as besoin.

  4. #4
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut
    Citation Envoyé par bartmarley
    Salut
    si j'ai bien compris, tu veux rechercher un String en n'ayant que le début de la chaine.
    Si tu le fais en SQL, tu as l'opérateur LIKE "V%"
    et en java, la classe String a une méthode startsWith(String) qui peut correspondre à ce dont tu as besoin.
    Java c'est trop fort !


    merci!

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 48
    Par défaut
    Citation Envoyé par bartmarley
    Salut
    si j'ai bien compris, tu veux rechercher un String en n'ayant que le début de la chaine.
    Si tu le fais en SQL, tu as l'opérateur LIKE "V%"
    et en java, la classe String a une méthode startsWith(String) qui peut correspondre à ce dont tu as besoin.
    C'est bien, mais il y a mieux: matches()

    Cette méthode te permet d'évaluer une string avec une expression régulière (cf. http://www.regular-expressions.info/). Par exemple, si tu veux savoir si "ABCDEFGHIJKLMNOP" contient "DEF" (like "%DEF%" en SQL):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String aString = "ABCDEFGHIJKLMNOP";
    String aToken = "(.*)DEF(.*)";
    boolean aMatch = aString.matches(aToken);
    Bien sûr, la syntaxe des expressions régulières n'est pas des plus simples, mais c'est un outil extrêmement puissant.

    - Colargol

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

Discussions similaires

  1. [String]Recherche algo pour calcul dimension
    Par GyZmoO dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 30/04/2008, 12h12
  2. [String] Recherche d'une sous-chaine
    Par opensource dans le forum SL & STL
    Réponses: 2
    Dernier message: 13/09/2007, 16h19
  3. [string] recherche dans code HTML
    Par zorrax dans le forum Delphi
    Réponses: 4
    Dernier message: 11/12/2006, 16h39
  4. [C#2005] Strings(recherche d'un terme etc).
    Par madlogik dans le forum Windows Forms
    Réponses: 2
    Dernier message: 03/10/2006, 10h56
  5. [String]Recherche d'une chaine de caractères dans une autre
    Par Crazyblinkgirl dans le forum Langage
    Réponses: 3
    Dernier message: 29/07/2004, 11h51

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