Je veux m'assurer que _content ne se termine pas par un caractère NewLine:
_content = sb.ToString().Trim(new char[] { Environment.NewLine });
mais le code ci - dessus ne fonctionne pas car Trim ne semble pas avoir de paramètre surchargé pour une collection de chaînes, uniquement des caractères.
Quel est le one-liner le plus simple pour retirer un Enivronment.Newline de la fin d'une chaîne?
Réponses:
Ce qui suit fonctionne pour moi.
ou
la source
.Trim()
supprime\r\n
pour moi (en utilisant .NET 4.0).la source
Que diriez-vous:
C'est quelque peu inefficace s'il y a plusieurs nouvelles lignes, mais cela fonctionnera.
Sinon, si cela ne vous dérange pas de couper (par exemple)
"\r\r\r\r"
ou"\n\n\n\n"
plutôt que de simplement"\r\n\r\n\r\n"
:la source
Utilisez le Framework. La méthode ReadLine () a ce qui suit à dire:
Donc ce qui suit fera l'affaire
la source
Qu'en est-il de
la source
Cela supprimera bien sûr "\ r \ r \ r \ r" ainsi que "\ n \ n \ n \ n" et d'autres combinaisons. Et dans les "environnements" où NewLine est autre que "\ n \ r", vous pourriez avoir des comportements étranges :-)
Mais si vous pouvez vivre avec cela, je pense que c'est le moyen le plus efficace de supprimer les caractères de nouvelle ligne à la fin d'une chaîne.
la source
Que diriez-vous simplement:
Cela extraira tous les caractères d'espacement de la fin de la chaîne - un problème uniquement si vous vouliez conserver les espaces sans nouvelle ligne.
la source
Un peu de non-réponse, mais le moyen le plus simple de couper une nouvelle ligne d'une chaîne est de ne pas avoir la nouvelle ligne sur la chaîne en premier lieu, en s'assurant qu'elle n'est jamais vue par votre propre code. Autrement dit, en utilisant des fonctions natives qui suppriment la nouvelle ligne. De nombreuses méthodes stream et file / io n'incluront pas la nouvelle ligne si vous demandez une sortie ligne par ligne, bien qu'il puisse être nécessaire d'envelopper quelque chose dans un fichier
System.IO.BufferedStream
.Des choses comme
System.IO.File.ReadAllLines
peuvent être utilisées à la place de laSystem.IO.File.ReadAllText
plupart du temps, etReadLine
peuvent être utilisées à la place d'Read
une fois que vous travaillez avec le bon type de flux (par exempleBufferedStream
).la source
Comme Markus l'a souligné, TrimEnd fait le travail maintenant. J'avais besoin d'obtenir des sauts de ligne et des espaces blancs des deux extrémités de la chaîne dans l'environnement Windows Phone 7.8. Après avoir recherché différentes options plus complexes, mon problème a été résolu en utilisant uniquement Trim () - a bien passé les tests suivants
la source
J'ai dû supprimer les nouvelles lignes partout dans le texte. J'ai donc utilisé:
la source