Incrementer un String

adriano -  
 adriano -
de la difficulte pour un programme java

je doit incrementer de 5, une chaine de caractere

mais incrementer de 5 simplement les lettres qui sont
en position impair.

exemple;1234f&9hBF22
devient;1234f&9mBK22
merci de votre aide

6 réponses

Utilisateur anonyme
 
Salut,

Ma réponse c'est d'abord quelques questions:

Tu dis "mais incrementer de 5 simplement les lettres qui sont
en position impair." ! Ne serait-ce pas "en position paire" ? car dans ton exemple, ce sont le h (en position 8 donc paire qui devient m, et le F (en 10) qui devient K.

Ensuite, il faut qu'on sache que deviennent les lettres v, w, x, y et z?
Peut-être a, b, c, d, et e.

À préciser...

Cordialement,

Dan
0
adriano
 
desoler, si j ai mal expliquer,

en fait cela est correcte, puisqu il faut compter a partir de 0, donc le h est en position 7 ce qui est impair, donc il faut l incrementer de 5,

donc, l utilisateur entre une chaine de caractere, si j ai n importe quel lettre quel soit majuscul ou minuscule dans une position impair il faut l incrementer de 5,

meme les lettre comme a,b,c,d,e, et v,w,x,y,z.

exemple, 1bezreA
reponse, 1geerF

j ai comme meme une petite idee, comment le programmer, je vais comme meme essayer et je le mettrais.

je vais la faire avec la boocle for
0
latoopa Messages postés 278 Date d'inscription   Statut Membre Dernière intervention   32
 
Salut,

oui une boucle for me parait bien (tu parcours chaque caractère de ta chaine comme ca) :

for(int i =0 ; i != chaine.length() ; i++){ 
     if ( i%2 != 0){ // si i impair 
           // si ton char "chaine.chatAt(i)" est une lettre : code ASCII ;-)
           { 
                 //   code ASCII = code ASCII + 5; 
                 //   remplacement du caractère dans la chaine; 
           } 
     } 
} 


Voilà, je pense que comme ca tu devrais t'en sortir ;)
Aplouch

Toopa
0
adriano
 
merci beaucoup pour votre aide
trés apprécié, sincèrement.

j ai pu reussir le programme, que je devais faire,

j ai une simple question, par curiosité, j aimerai savoir, pourquoi dans la boucle for

for(int i =0 ; i != chaine.length() ; i++){
instr.
¸}
j aimerai savoir pour le i != chaine.length() , qu est ce que sa veux dire parce que sa marche bien, moi je l avais fait de cette facon

for(int i =0 ; i < chaine.length() ; i++){ ....

et sa la egalement bien marcher, c est simplement par curiosite, parce que moi et les boucles for, sa fait deux ;).

pk different

merci beaucoup
0

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

Posez votre question
latoopa Messages postés 278 Date d'inscription   Statut Membre Dernière intervention   32
 
Salut,

alors :

i < chaine.length()

signifie (puisque cette condition est située au milieu dans la boucle for) que ta boucle va "reboucler" tant que i est inférieur à la valeur entière qui correspond à la longueur de ta chaine de caractères

i != chaine.length()

signifie que ta boucle va "reboucler" tant que i est différent de la valeur entière qui correspond à la longueur de ta chaine de caractères (!= correspond en effet à "différent")

Ce n'est donc pas la même condition d'arrêt, mais dans ce cas particulier elle arrête la boucle au même moment, quand i = chaine.length()

Voilà, en espérant t'avoir éclairé.
Toopa
0
xav3601 Messages postés 3390 Statut Membre 311
 
Pour gagner du temps, je ne ferais passer ma boucle for que dans les positions impair!
Ca réduirait le traitement est permettrai d'éviter le test avec le modulo:

for(int i =1 ; i < chaine.length() ; i=i+2){
// code ASCII = code ASCII + 5;
// remplacement du caractère dans la chaine;
}

La culture c'est comme la confiture, moins en a plus on l'étale!
0
latoopa Messages postés 278 Date d'inscription   Statut Membre Dernière intervention   32
 
Oui mais à ce moment là, comme la chaine a un nombre de caractères pouvant etre pair ou impair, il faut utiliser i < chaine.length() et non plus i != chaine.length() car sinon tu peux le dépasser.
0
xav3601 Messages postés 3390 Statut Membre 311
 
Oui en effet j'ai pas fas gaffe à ca!
Très juste, je modifie :-)
0
adriano
 
hey les gars, je vous remercie infiniment pour votre aide

c est tres apprécié,

j ai reussi le programme en faisant la boucle for, et a l interieur de cette boucle j ai mis la

condition de if(i%2 !=0), et ca marcher,

for(int i =0 ; i < chaine.length() ; i++){ ....

lettre=chaine.charAt(i);
if (i % 2 !=0) {.......
je vous remercie du fond du coeur, ;)
0