Comparaison de chaine [Résolu]

Signaler
Messages postés
108
Date d'inscription
samedi 31 mars 2012
Statut
Membre
Dernière intervention
16 juin 2013
-
Messages postés
108
Date d'inscription
samedi 31 mars 2012
Statut
Membre
Dernière intervention
16 juin 2013
-
Bonjour

Je cherche la fonction qui permet de comparer deux chaines, pas égal mais deux chaines qui ont les mêmes lettres.
Ex:
elle doit accepter par exemple:
aime et emai par exemple parce qu'elles ont les mêmes lettres

4 réponses

Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
325
Salut,

Je pense que tu n'as pas tout a fait compris ce que fait JulSoft, cela fonctionne si le nombre d’occurrence de chaque lettre n'a pas d'importance.

Tu peux toujours faire ceci :
public static boolean tester_lettres(String a, String b){
char[] t_a = a.toCharArray();
char[] t_b = b.toCharArray();
Arrays.sort(t_a);
Arrays.sort(t_b);
return new String(t_a).equals(new String(t_b));
}
Messages postés
354
Date d'inscription
dimanche 3 juin 2001
Statut
Membre
Dernière intervention
11 mars 2013

Est-ce que la casse ou le nombre d'occurances de chaque lettre est important?

Une première version (non testée):

boolean compare(String a, String b){
    HashSet<Character> charsA = new HashSet<Character>();

    foreach(char c : a.toCharArray()){
        charsA.add(c);
    }

    foreach(char c : b.toCharArray()){
        if(!charsA.contains(c))
            return false;
    }

    return true;
}


Sensible à la casse, mais pas au nombre d'ocurences (les lettres de la chaîne b doivent se trouver parmi celles de la chaîne a).
Messages postés
108
Date d'inscription
samedi 31 mars 2012
Statut
Membre
Dernière intervention
16 juin 2013

Ton code n'envoie tout le temps "true"
J'ai compris ton idée
Messages postés
108
Date d'inscription
samedi 31 mars 2012
Statut
Membre
Dernière intervention
16 juin 2013

Le nombre d’occurrences de chaque lettres à de l'importance pour par exemple
"officiel", s'il met "ciealoffi" sa devrait marcher, alors que les set n'accepte pas de doublons