Supprimer un caractere ds une chaine en java

Résolu/Fermé
sas202010 - 2 avril 2012 à 22:17
 Utilisateur anonyme - 3 avril 2012 à 19:25
Bonjour,

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

A voir également:

3 réponses

Utilisateur anonyme
3 avril 2012 à 19:25
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
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
2 avril 2012 à 22:48
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
leen.net Messages postés 212 Date d'inscription lundi 31 janvier 2011 Statut Membre Dernière intervention 14 mai 2014 13
2 avril 2012 à 22:47
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
merci
0