Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème chaine de caractère

Sujet résolu
    23 mars 2009 à 22:28:14

    Salut tout le monde,
    J'ai réalisé ce code afin de pouvoir transformer une chaine de caractère qui contient le nom "maison" en des ******,

    voilà le code :
    public class main {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		
    		String nomMystere = "chaise";
    		
    		for (int x = 0; x<nomMystere.length(); x++ ){
    			String nomEntré = nomMystere.replace(nomMystere.charAt(x), '*');
    			System.out.println(nomEntré);
    			}
    		
    	}
    
    }
    

    le résultat :
    *haise
    c*aise
    ch*ise
    cha*se
    chai*e
    chais*


    Ce que je veux avoir:
    *haise
    **aise
    ***ise
    ****se
    *****e
    ******


    J'espère avoir bien expliquer mon problème, et merci d'avance :)
    • Partager sur Facebook
    • Partager sur Twitter
      23 mars 2009 à 22:39:18

      Salut,

      Avant de discuter d'une solution, est-ce que tu comprends déjà pourquoi tu obtiens le résultat que tu as ?

      • Partager sur Facebook
      • Partager sur Twitter
        23 mars 2009 à 22:44:11

        pas besoin de plus d'une variable, en fait tu ne modifie jamais la variable d'origine dans ton code, donc voila. :p
        et pourtant c'est facile a debugger un code pareil. :euh:
        Mais bon, voila ta solution !!!
        public class Main {
        
        	/**
        	 * @param args
        	 */
        	public static void main(String[] args) {
        		
        		String nomMystere = "chaise";
        		
        		for (int x = 0; x<nomMystere.length(); x++ ){
        			nomMystere = nomMystere.replace(nomMystere.charAt(x), '*');
        			System.out.println(nomMystere );
        			}
        		
        	}
        
        }
        
        • Partager sur Facebook
        • Partager sur Twitter
        J'ai tous les badges d'OpenClassrooms.
          23 mars 2009 à 22:48:12

          Citation : willard

          et pourtant c'est facile a debugger un code pareil. :euh:


          C'est pourquoi je pense qu'on aurait pu dans un premier temps essayé de lui faire trouver.
          • Partager sur Facebook
          • Partager sur Twitter
            23 mars 2009 à 22:50:20

            Citation : freecircus


            C'est pourquoi je pense qu'on aurait pu dans un premier temps essayé de lui faire trouver.


            C'est pas le but d'un forum, dès fois on ne sais pas a quel point les gens trime pour trouver des trucs, et ils viennent ici trouver des codes exemples qui marchent afin de travailler efficacement
            • Partager sur Facebook
            • Partager sur Twitter
            J'ai tous les badges d'OpenClassrooms.
              23 mars 2009 à 22:55:20

              Merci pour la solution mais Pourquoi mon premier code ne marche pas? :(
              • Partager sur Facebook
              • Partager sur Twitter
                23 mars 2009 à 22:57:08

                Citation : Edmeral

                Merci pour la solution mais Pourquoi mon premier code ne marche pas? :(



                ta variable "String nomEntré" n'avait pas lieu d'etre.
                • Partager sur Facebook
                • Partager sur Twitter
                J'ai tous les badges d'OpenClassrooms.
                  23 mars 2009 à 23:01:59

                  Vraiment debutant :
                  En faisant String nomEntré=nomMystere.replace(nomMystere.charAt(x), '*');

                  Tu est entrain de cree la meme variable a chaque itération de la boucle, hors la chaine qui est modifiée a chacune de ces itérations n'es en aucun cas conservée quelque part.

                  pour i=1;
                  nomMystere= *haise;
                  pour i=2;
                  nomMystere= c*aise

                  Car tu as modifier la variable initiale nomMystere qui n'est jamais modifier dans ton programme
                  • Partager sur Facebook
                  • Partager sur Twitter
                  J'ai tous les badges d'OpenClassrooms.
                    23 mars 2009 à 23:08:17

                    Je suis un gros débutant :honte:

                    J'ai compris maintenant merci beaucoup.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      24 mars 2009 à 0:38:44

                      Citation : willard

                      C'est pas le but d'un forum, dès fois on ne sais pas a quel point les gens trime pour trouver des trucs, et ils viennent ici trouver des codes exemples qui marchent afin de travailler efficacement


                      On a donc une deux façon bien différentes de voir l'apprentissage.
                      J'aurais tendance à dire que sur le but du forum d'un site de formation n'est certaiment pas de proposer des solutions dès le premier post.
                      Si on ne sait pas toujours à quel point les gens triment, on ne sait pas non plus à quelle vitesse ils se précipitent sur le forum au moindre problème. Si le type fait partie de cette dernière catégorie, tout ce que tu fais c'est encourager ses mauvaises habitudes.
                      C'est bien de trimer, et c'est bien aussi d'etre "récompenser" pour ça : c'est à dire trouver la solution par soi-même (avec juste un petit coup d'pouce).
                      Je trouve que des codes d'exemples sont plus appropriés avec quelqu'un déjà un minimum expérimenté.
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Problème chaine de caractère

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown