52 votes

Comment supprimer toutes les instances d'un caractère spécifique d'une chaîne ?

J'essaie de supprimer tous les caractères d'une chaîne. J'ai utilisé String.Replace, mais cela ne fait rien, et je ne sais pas pourquoi. Ceci est mon code actuel :

        if (Gamertag2.Contains("^"))
        {
            Gamertag2.Replace("^" + 1, "");
        }

Cela laisse juste la corde comme elle était avant. Quelqu'un peut-il m'expliquer pourquoi ?

95voto

Tim Schmelter Points 163781

Vous devez assigner la valeur de retour de String.Replace votre instance de chaîne d'origine :

donc au lieu de(pas besoin de Contains check)

if (Gamertag2.Contains("^"))
{
    Gamertag2.Replace("^" + 1, "");
}

Juste ça(c'est quoi ce mystique +1 ?):

Gamertag2 = Gamertag2.Replace("^", "");

15voto

climbage Points 5742

Deux choses :

1) C# Les chaînes sont immuables. Vous devrez faire ceci :

Gamertag2 = Gamertag2.Replace("^" + 1, "");

2) "^" + 1 ? Pourquoi faites-vous cela ? En gros, vous dites Gamertag2.Replace("^1", "");, ce qui n'est certainement pas ce que vous voulez.

3voto

stackPopper Points 109

Comme dit climbage, votre problème est certainement

Gamertag2.Replace("^"+1,"");

Cette ligne supprimera uniquement les instances de "^1" de votre chaîne. Si vous voulez supprimer toutes les instances de "^", ce que vous voulez est :

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