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

  1. danimo
     
    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
  2. 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
  3. 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
  4. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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
  7. xav3601 Messages postés 3390 Statut Membre 312
     
    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
    1. 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
    2. xav3601 Messages postés 3390 Statut Membre 312
       
      Oui en effet j'ai pas fas gaffe à ca!
      Très juste, je modifie :-)
      0
    3. 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