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

Java Discussion :

Chaîne de caracteres


Sujet :

Java

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 262
    Par défaut Chaîne de caracteres
    bonjour j'ai une question à propos des chaine de caractère en java.

    comment savoir si une chaine contient des lettres spécifiques.

    par exemple la chaine de caractère "abc" contient la chaine "ba"

    mais ne contient pas la chaine "aa" mémé si a se trouve dans la chaine , bon ce que je cherche c'est quelque chose qui ressemble a substring méme si la sous chaine soit désordonnée.

    je veux bien savoir si ça se trouve défini dans les classes des chaines de caractères ou je dois définir une méthode qui fait ce genre de travail.

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Citation Envoyé par momedalhouma Voir le message
    par exemple la chaine de caractère "abc" contient la chaine "ba"
    La chaine "abc" ne contient pas la chaine "ba" mais les caractères "b" et "a".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public static boolean contains(String lettresATrouver, String chaineDeRecherche){
      boolean a = true;
      for (int i=0; i<lettresATrouver.length(); i++ ){
         if (chaineDeRecherche.indexOf (lettresATrouver.charAt(i)) == -1 ){
             a = false;
             break;
         }
      }
      return a;
    }
    A+.

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Apparemment si tu mets deux fois la même lettre il faut qu'il aille chercher deux fois cette lettre dans la chaîne.

    Du coup c'est un peu plus compliqué, il faut commencer par compter combien de fois on recherche la lettre.

    Quoi qu'il en soit, non, il n'existe pas de méthode qui fasse ça directement. Mais ce n'est pas difficile à programmer.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 262
    Par défaut
    merci pour vos réponses.

    bon pour la première réponse ça fonctionne pas dans le cas ou on cherche si la chaine "aa" se trouve dans la chaine "abc" dans le résultat va donner true, normalement ça doit renvoyer false.

    pour thelvin tu as raison de ta proposition mais moi j'ai fait autrement , j'utilise un stringbuilder qui va me permettre de supprimes la caractère de la chaine de recherche.
    voila ma solution et merci pour vos intérêts
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    public class Alhoussin {
     
        public static void main(String[] args) {
            String chaine = "abc";
            String lettres = "ca";
            if (lettres_alchaine( chaine,  lettres)){
                System.out.println("les lettres se trouves a la chaine");
            }else{
                System.out.println("non les lettres ne se trouves pas a la chaine");
            }
     
        }
     
     
        public static boolean lettres_alchaine(String chaine,String  mot){
            StringBuilder modi = new StringBuilder(chaine);
            char[] tab = mot.toCharArray();
            for (int i = 0; i < tab.length; i++) {
                String seq = tab[i] + "";
                if (modi.indexOf(seq) == -1) {
                    return false;
                }
             modi.deleteCharAt(modi.indexOf(seq));  
     
            }
            return true;
     
        }
    }

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Si les lettres à rechercher se suivent quand elles sont identiques, ma méthode est plus efficace. Mais bon, ce n'est pas forcément important.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Citation Envoyé par momedalhouma Voir le message
    bonjour j'ai une question à propos des chaine de caractère en java.

    comment savoir si une chaine contient des lettres spécifiques.

    par exemple la chaine de caractère "abc" contient la chaine "ba"

    mais ne contient pas la chaine "aa" mémé si a se trouve dans la chaine , bon ce que je cherche c'est quelque chose qui ressemble a substring méme si la sous chaine soit désordonnée.

    je veux bien savoir si ça se trouve défini dans les classes des chaines de caractères ou je dois définir une méthode qui fait ce genre de travail.
    Désolé, j'ai loupé celui là . Et c'est maintenant que je comprend le premier message de thelvin .

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/03/2007, 16h26
  2. stocker chaîne de caracteres dans une variable
    Par coachbob44 dans le forum Langage
    Réponses: 2
    Dernier message: 11/01/2007, 17h45
  3. Permuter les bits d'une chaîne de caractere
    Par Menontona dans le forum C
    Réponses: 14
    Dernier message: 13/09/2006, 15h30
  4. longueur chaîne de caractere
    Par jmjmjm dans le forum Langage
    Réponses: 2
    Dernier message: 26/02/2006, 23h29
  5. Différence entres chaînes de caracteres
    Par Oberown dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 18/02/2006, 11h53

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