Supprimer un caractere ds une chaine en java

Résolu
sas202010 -  
 danimo -
Bonjour,

je veux savoir comment faire pour supprimer un caractere dans un chaine de caractére

3 réponses

  1. danimo
     
    Salut,

    String carAsup = "e"; 
             
          // supposons qu'il n'y a qu'un caractère à supprimer ou si plusieurs n'enlever que le 1er
             String ch = "eabcdefgh";
             String chNew = "";
             
             int inSup = ch.indexOf(carAsup);
          	
             if(inSup >= 0)
             {
                chNew = ch.substring(0,inSup) + ch.substring(inSup +1);
                System.out.println("chNew = " + "\"" + chNew + "\"");
             }
             else
                System.out.println("Il n'y a pas de " + carAsup + " dans la chaîne " + ch);
                
          //Si nous devons supprimer tous les 'e'      		
             ch = "eabcdefghewxyze";
             chNew = ch.replaceAll(carAsup,"");
             System.out.println("chNew = " + "\"" + chNew + "\"");
             
          // Si autres cas, préciser
    


    Cordialement,

    Dan

    10
  2. KX Messages postés 19031 Statut Modérateur 3 020
     
    Déjà il faut savoir qu'un String ne se modifie pas, peu importe les méthodes que tu pourras utiliser ce sera un nouveau String qui sera créé.
    Sachant cela il y a plusieurs possibilités qui s'offre à toi, et cela va dépendre de la manière dont tu définis quel est le caractère à supprimer.
    Le plus simple est surement d'utiliser substring avant et après le caractère à supprimer, puis les recoller. Après question performance ça se discute, et on pourrait préférer traiter directement le tableau de char donné par toCharArray(), à toi de choisir...
    5
  3. leen.net Messages postés 247 Statut Membre 13
     
    tu peux faire 2 subString, en éliminant le caractère
    par exemple la chaine est : abcdefgh, et tu dois supprimer le 'e', tu écris S1= S.SubString(0,3) et S2= S.SubString(5,7)
    puis tu fais une concatenation pour S1 , S2...
    3
    1. sas202010
       
      merci
      0