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. 
}

9voto

BlizzaN Points 39

Pour modifier les chaînes de caractères, il faut lire le StringBuilder car il est mutable, sauf pour les chaînes de caractères immuables. Les différentes opérations peuvent être trouvées ici https://docs.oracle.com/javase/tutorial/java/data/buffers.html . L'extrait de code ci-dessous crée un StringBuilder et ajoute ensuite la chaîne donnée, puis supprime le premier caractère de la chaîne et la reconvertit ensuite de StringBuilder en chaîne.

StringBuilder sb = new StringBuilder();

sb.append(str);
sb.deleteCharAt(0);
str = sb.toString();

8voto

आनंद Points 678

Considérons le code suivant :

public String removeChar(String str, Integer n) {
    String front = str.substring(0, n);
    String back = str.substring(n+1, str.length());
    return front + back;
}

4voto

Bob Genom Points 171

Vous pouvez également utiliser la (énorme) machine à regexp.

inputString = inputString.replaceFirst("(?s)(.{2}).(.*)", "$1$2");
  • "(?s)" - indique à regexp de traiter les nouvelles lignes comme des caractères normaux (juste au cas où).
  • "(.{2})" - groupe $1 rassemblant exactement 2 caractères
  • "." - tout caractère à l'index 2 (à évincer).
  • "(.*)" - groupe $2 qui recueille le reste de l'inputString.
  • "$1$2" - en mettant ensemble le groupe 1 et le groupe 2.

4voto

Nadav Points 443

Si vous voulez supprimer un caractère d'un Chaîne de caractères str à un moment précis int indice :

    public static String removeCharAt(String str, int index) {

        // The part of the String before the index:
        String str1 = str.substring(0,index);

        // The part of the String after the index:            
        String str2 = str.substring(index+1,str.length());

        // These two parts together gives the String without the specified index
        return str1+str2;

    }

3voto

Anupam Jain Points 65

En utilisant la méthode de remplacement, nous pouvons changer un seul caractère de la chaîne.

string= string.replace("*", "");

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