63 votes

Comment changer 1 caractère dans la chaîne ?

j'ai ce code :

 string str = "valta is the best place in the World";

Je dois remplacer le premier symbole. Quand j'essaye ça :

 str[0] = 'M';

J'ai reçu une erreur. Comment puis-je faire ceci?

48voto

Chuck Norris Points 8240

Je vous suggère d'utiliser la StringBuilder pour cela et de l'analyser en chaîne si vous en avez besoin.

 System.Text.StringBuilder strBuilder = new System.Text.StringBuilder("valta is the best place in the World");
strBuilder[0] = 'M';
string str=strBuilder.ToString();

Vous ne pouvez pas modifier les caractères de la chaîne de cette manière, car en C#, la chaîne n'est pas dynamique et est immuable et ses caractères sont en lecture seule. Assurez-vous de cela, essayez d'utiliser des méthodes de chaîne, par exemple, si vous faites str.ToLower() cela crée une nouvelle chaîne et votre chaîne précédente ne change pas.

24voto

Jeb Points 1749

Les cordes sont immuables. Vous pouvez utiliser la classe de construction de chaînes pour vous aider ! :

 string str = "valta is the best place in the World";

StringBuilder strB = new StringBuilder(str);

strB[0] = 'M';

9voto

Paulo Mendonça Points 142

J'ai fait une méthode pour faire ça

     string test = "Paul";
    test = ReplaceAtIndex(0, 'M', test);

    (...)

    static string ReplaceAtIndex(int i, char value, string word)
    {
        char[] letters = word.ToCharArray();
        letters[i] = value;
        return string.Join("", letters);
    }

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