Problème comparaison caractères [Résolu/Fermé]

Messages postés
6
Date d'inscription
lundi 31 mars 2008
Statut
Membre
Dernière intervention
1 avril 2008
- - Dernière réponse : 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
Afficher la suite 

9 réponses

Meilleure réponse
Messages postés
764
Date d'inscription
jeudi 27 juillet 2006
Statut
Membre
Dernière intervention
6 septembre 2010
16
3
Merci
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..

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 218 internautes nous ont dit merci ce mois-ci

Messages postés
764
Date d'inscription
jeudi 27 juillet 2006
Statut
Membre
Dernière intervention
6 septembre 2010
16
0
Merci
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
Messages postés
6
Date d'inscription
lundi 31 mars 2008
Statut
Membre
Dernière intervention
1 avril 2008
0
Merci
Merci beaucoup ! Ca marche nickel et en plus ca réduit la complexité !
Messages postés
6
Date d'inscription
lundi 31 mars 2008
Statut
Membre
Dernière intervention
1 avril 2008
0
Merci
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) ?
Messages postés
764
Date d'inscription
jeudi 27 juillet 2006
Statut
Membre
Dernière intervention
6 septembre 2010
16
0
Merci
de rien

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

for(char lettre='a'; lettre <= 'z'; lettre++)
    if(str.contains(String.valueOf(lettre)) == false)
        str += lettre;
Messages postés
6
Date d'inscription
lundi 31 mars 2008
Statut
Membre
Dernière intervention
1 avril 2008
0
Merci
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é ...) ?
Messages postés
764
Date d'inscription
jeudi 27 juillet 2006
Statut
Membre
Dernière intervention
6 septembre 2010
16
0
Merci
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é ...)
" ?
Messages postés
6
Date d'inscription
lundi 31 mars 2008
Statut
Membre
Dernière intervention
1 avril 2008
0
Merci
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