164 votes

Comment supprimer un caractère unique d'une chaîne de caractères

Pour accéder aux caractères individuels d'une chaîne en Java, nous avons String.charAt(2) . Existe-t-il une fonction intégrée pour supprimer un caractère individuel d'une chaîne de caractères en java ?

Quelque chose comme ça :

if(String.charAt(1) == String.charAt(2){
   //I want to remove the individual character at index 2. 
}

279voto

Bhesh Gurung Points 24875

Vous pouvez également utiliser le StringBuilder qui est mutable.

StringBuilder sb = new StringBuilder(inputString);

Il a la méthode deleteCharAt() ainsi que de nombreuses autres méthodes de mutateur.

Il suffit de supprimer les caractères à supprimer et d'obtenir le résultat suivant :

String resultString = sb.toString();

Cela évite la création d'objets chaîne inutiles.

97voto

Thuy Points 1005

Vous pouvez utiliser la méthode Java String appelée replace, qui remplacera tous les caractères correspondant au premier paramètre par le deuxième paramètre :

String a = "Cool";
a = a.replace("o","");

88voto

atkretsch Points 785

Une possibilité :

String result = str.substring(0, index) + str.substring(index+1);

Notez que le résultat est un nouveau String (ainsi que deux objets String intermédiaires), car les Strings en Java sont immuables.

18voto

Óscar López Points 97105

Non, car les chaînes de caractères en Java sont immuables. Vous devrez créer une nouvelle chaîne en supprimant le caractère que vous ne voulez pas.

Pour remplacer un seul caractère c à la position de l'index idx à la chaîne str Faites quelque chose comme ceci, et souvenez-vous qu'une nouvelle chaîne sera créée :

String newstr = str.substring(0, idx) + str.substring(idx + 1);

17voto

Yash Points 4565
String str = "M1y java8 Progr5am";

deleteCharAt()

StringBuilder build = new StringBuilder(str);
System.out.println("Pre Builder : " + build);
    build.deleteCharAt(1);  // Shift the positions front.
    build.deleteCharAt(8-1);
    build.deleteCharAt(15-2);
System.out.println("Post Builder : " + build);

remplacer()

StringBuffer buffer = new StringBuffer(str);
    buffer.replace(1, 2, ""); // Shift the positions front.
    buffer.replace(7, 8, "");
    buffer.replace(13, 14, "");
System.out.println("Buffer : "+buffer);

char[]

char[] c = str.toCharArray();
String new_Str = "";
    for (int i = 0; i < c.length; i++) {
        if (!(i == 1 || i == 8 || i == 15)) 
            new_Str += c[i];
    }
System.out.println("Char Array : "+new_Str);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X