Problème comparaison caractères

Résolu/Fermé
bretonnus Messages postés 6 Date d'inscription lundi 31 mars 2008 Statut Membre Dernière intervention 1 avril 2008 - 1 avril 2008 à 18:04
cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 - 1 avril 2008 à 20:34
Salut à tous !

J'ai un petit soucis pour comparer deux caractères : je voudrais supprimer dans une string (que j'ai appelé cle) les caractères en double. Le code que j'ai pondu pour le moment est le suivant :

Console.ecrireNL("Entrez une clé de cryptage : ");

        String cle = Console.lireMot();

        lcle = cle.length();

        posCle = 1;

        while (posCle < lcle) {

            carCle = cle.charAt(posCle);

            while (i <= posCle-1) {

                carClelu = cle.charAt(i);

                int c = carClelu.compareTo(carCle);

               
// Ici, je souhaite comparer la valeur de c à 0 pour savoir si c'est le même caractère ou non
//Java me renvoie une erreur me disant que char ne peut pas être dereferenced.... pourtant carCle et carClelu sont déclarés comme Char...

                if (carClelu == carCle) {

                    cle = (cle.substring(-1, posCle-1)).concat(cle.substring(posCle,lcle));

                    lcle = cle.length();

                }

                else {

                    i++;

                    carClelu = cle.charAt(i);

                }

            }

            posCle++;

            carCle = cle.charAt(posCle);

        }

        Console.ecrire(cle);

Je suis sur que je me prends la tête et qu'il y a un moyen beaucoup plus simple de le faire... Si quelqu'un avait une idée pour m'aider ca serait super !
Merci beaucoup

9 réponses

cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 19
1 avril 2008 à 20:34
là mon ami tu demandes un service que tu peux te faire toi même : concaténer les deux codes que j'ai donné et faire str += " "; !!!

les demandes de ce genre sont interdites sur le site..
3
cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 19
1 avril 2008 à 19:14
Salut,

voici un idée :

String str = "abaabcdwhah";
char car;
int pos_car;

int i=0;
while(i < str.length()-1) {
    ar = str.charAt(i);
    str = str.substring(0, i+1) + str.substring(i+1).replaceAll(String.valueOf(car), "");
    i++;
}
System.out.println(str);    // abcdwh
0
bretonnus Messages postés 6 Date d'inscription lundi 31 mars 2008 Statut Membre Dernière intervention 1 avril 2008
1 avril 2008 à 19:45
Merci beaucoup ! Ca marche nickel et en plus ca réduit la complexité !
0
bretonnus Messages postés 6 Date d'inscription lundi 31 mars 2008 Statut Membre Dernière intervention 1 avril 2008
1 avril 2008 à 19:51
Juste une autre petite question : comment est ce que je pourrais rajouter a cle le reste des lettres de l'alphabet minuscule plus l'espace (qui ne sont pas déjà apparues) ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 19
1 avril 2008 à 19:52
de rien

n'oublie pas de mettre Réponse acceptée..
0
cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 19
1 avril 2008 à 19:57
tu peux faire :

for(char lettre='a'; lettre <= 'z'; lettre++)
    if(str.contains(String.valueOf(lettre)) == false)
        str += lettre;
0
bretonnus Messages postés 6 Date d'inscription lundi 31 mars 2008 Statut Membre Dernière intervention 1 avril 2008
1 avril 2008 à 20:01
Je suis désolé de t'embeter mais il faut que j'aie fini demain et j'y ai passé l aprem...

Comment je pourrais faire pour faire tout ca mais ne pas tenir compte de l'espace (le rajouter à la toute fin de la clé ...) ?
0
cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 19
1 avril 2008 à 20:08
Qu'est-ce que tu veux dire par "
faire tout ca mais ne pas tenir compte de l'espace (le rajouter à la toute fin de la clé ...)
" ?
0
bretonnus Messages postés 6 Date d'inscription lundi 31 mars 2008 Statut Membre Dernière intervention 1 avril 2008
1 avril 2008 à 20:21
c'est à dire avoir la clé qui commence par le mot donné en clé par le mec sans les redondances et avoir la fin de l alphabet ensuite le tout terminé par un espace.

Par exemple :
clé donnée : benjamin
clé que je voudrais : benjamicdfghjklopqrstuvwxyz
0
Rejoignez-nous