71 votes

Méthode String.Replace(char, char) en C#

Comment remplacer \n avec un espace vide ?

J'obtiens une erreur de littéral vide si je fais cela :

string temp = mystring.Replace('\n', '');

122voto

Samuel Points 21085

String.Replace('\n', '') ne fonctionne pas car '' n'est pas un caractère littéral valide.

Si vous utilisez la surcharge String.Replace(string, string), cela devrait fonctionner.

string temp = mystring.Replace("\n", "");

16voto

Guffa Points 308133

En remplaçant " \n " par "" ne vous donne pas le résultat que vous souhaitez, cela signifie que ce que vous devez remplacer n'est en fait pas " \n ", mais une autre combinaison de caractères.

Il est possible que ce que vous devez remplacer soit le " \r\n La combinaison de caractères " ", qui est le code de nouvelle ligne dans un système Windows. Si vous ne remplacez que le " \n "(saut de ligne), il laissera le caractère " \r "(retour chariot), qui peut toujours être interprété comme un saut de ligne, selon la façon dont vous affichez la chaîne.

Si la source de la chaîne est spécifique au système, vous devez utiliser cette chaîne spécifique, sinon vous devez utiliser Environment.NewLine pour obtenir la combinaison de caractères de nouvelle ligne pour le système actuel.

string temp = mystring.Replace("\r\n", string.Empty);

ou :

string temp = mystring.Replace(Environment.NewLine, string.Empty);

4voto

Robin Day Points 39440

Cela devrait fonctionner.

string temp = mystring.Replace("\n", "");

Etes-vous sûr qu'il y a de vrais \n de nouvelles lignes dans votre chaîne originale ?

4voto

Shawn Kovac Points 424
string temp = mystring.Replace("\n", string.Empty).Replace("\r", string.Empty);

Évidemment, cela supprime à la fois ' \n et \r ' et c'est aussi simple que je sache le faire.

2voto

Patrick McDonald Points 20645

Si vous utilisez

string temp = mystring.Replace("\r\n", "").Replace("\n", "");

alors tu n'auras pas à te soucier de l'origine de ta ficelle.

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