Similarités entre chaines de caractères

Fermé
supaneo Messages postés 1 Date d'inscription vendredi 3 juillet 2015 Statut Membre Dernière intervention 3 juillet 2015 - Modifié par KX le 3/07/2015 à 20:49
 speed - 30 juil. 2015 à 14:02
Bonjour tout le monde,

Je suis tout nouveau sur ce forum et je commence à apprendre java...

J'ai besoin de votre aide pour terminer un programme que je n'arrive pas à faire fonctionner.

Merci beaucoup pour votre aide!!!

Le programme
Il demande à l'utilisateur d'entrer une combinaison de 5 chiffres (combinaison 1) puis d'entrer une autre combinaison de 5 chiffres (combinaison 2).
La combinaison 2 doit correspondre à la combinaison 1. Donc, le programme affichera le nombre de bons chiffres.
Important : j'essaie de faire mon code sans utiliser de tableaux.
Exemples:
1 /
combinaison 1 = 17678
combinaison 2 = 23733
nombre de bons chiffres = 1 (même s'il y a deux 7 dans la combinaison 1, l'utilisateur n'en a entré qu'un seul)
2 /
combinaison 1 = 84452
combinaison 2 = 13858
nombre de bons chiffres = 2
3/
combinaison 1 = 64321
combinaison 2 = 66666
nombre de bons chiffres = 1

Mon programme, QUI NE FONCTIONNE PAS, donne ça pour le moment :
public static void main (String[] params) {   
        int res = 0;
        String comb1;
        String comb2;
 
        System.out.println("combinaison 1 : ");
        comb1 = Clavier.lireString();
        System.out.println("combinaison 2 : ");
        comb2 = Clavier.lireString();
 
        for(int j = 0; j < comb1.length(); j++) {
            for(int i = 0; i < comb2.length(); i++) {
                if (comb1.charAt(j) == comb2.charAt(i)) {
                    res = res + 1;
                    if(i < comb2.length()) {
                        comb2 = comb2.substring(i);                        
                    }else{
                        comb2= comb2.substring(i+1, comb2.length());                        
                    }
                    if(j < comb1.length()){
                        comb1 = comb1.substring(j);
                    }else{
                        comb1 = comb1.substring(j+1, comb1.length());                        
                    }
                }
                if(j < comb1.length()){                    
                    if(comb1.charAt(j) != comb2.charAt(i)){
                         j = j + 1;
                    }
                }
            }
        }
        System.out.println(res);

1 réponse

oula, tu te complique trop la vie :D
si je peux me permettre : Pourquoi sans tableaux ? Sachant qu'un object String n'est rien d'autre qu'un tableau de characters..
(et pour toi une liste est un tableau ?)
0