Comparaison de chaine

Résolu
andoid Messages postés 106 Date d'inscription samedi 31 mars 2012 Statut Membre Dernière intervention 16 juin 2013 - 11 mars 2013 à 18:47
andoid Messages postés 106 Date d'inscription samedi 31 mars 2012 Statut Membre Dernière intervention 16 juin 2013 - 12 mars 2013 à 09:15
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

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
12 mars 2013 à 08:25
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));
}
3
JulSoft Messages postés 354 Date d'inscription dimanche 3 juin 2001 Statut Membre Dernière intervention 11 mars 2013
11 mars 2013 à 22:12
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).
0
andoid Messages postés 106 Date d'inscription samedi 31 mars 2012 Statut Membre Dernière intervention 16 juin 2013
11 mars 2013 à 23:44
Ton code n'envoie tout le temps "true"
J'ai compris ton idée
0
andoid Messages postés 106 Date d'inscription samedi 31 mars 2012 Statut Membre Dernière intervention 16 juin 2013
12 mars 2013 à 09:15
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
0
Rejoignez-nous