Tengo una cadena en el siguiente formato
string s = "This is a Test String.\n This is a next line.\t This is a tab.\n'
Quiero eliminar todas las ocurrencias de \ny \rde la cadena de arriba.
Lo intenté string s = s.Trim(new char[] {'\n', '\r'});pero no ayudó.

Desea utilizar
String.Replacepara eliminar un personaje.Tenga en cuenta que
String.Trim(params char[] trimChars)solo elimina los caracteres iniciales y finalestrimCharsde la instancia invocada en.Podría hacer un método de extensión, que evite los problemas de rendimiento de lo anterior de hacer muchas cadenas temporales:
fuente
Sé que esta es una publicación antigua, sin embargo, pensé en compartir el método que uso para eliminar nuevos caracteres de línea.
Referencias
MSDN String.Replace Method y MSDN Environment.NewLine Property
fuente
Si la velocidad y el bajo uso de memoria son importantes, haga algo como esto:
fuente
solo haz eso
fuente
Un enfoque LINQ:
fuente
string.Joinque invocaráToStringcada unochardevuelto por la consulta. Es mejor simplemente pasar los resultados de la consulta alstringconstructor.s1 = new string(s.Where(....).ToArrary());La elección correcta realmente depende de qué tan grande es la cadena de entrada y cuáles son los requisitos de rendimiento y memoria, pero usaría una expresión regular como
O si necesitamos aplicar el mismo reemplazo varias veces, es mejor usar una versión compilada para Regex como
NOTA: diferentes escenarios requieren diferentes enfoques para lograr el mejor rendimiento y el consumo mínimo de memoria
fuente
Bueno ... me gustaría que entendieras áreas más específicas del espacio.
\ten realidad se clasifica como un espacio horizontal, no un espacio vertical. (prueba de inserción\ten el Bloc de notas)Si usa Java, simplemente use
\v. Ver la referencia a continuación.Pero sé que usas .NET. Entonces mi respuesta para reemplazar cada espacio vertical es ...
fuente
Puede usar
Trimsi desea eliminar desde el inicio y el final.fuente
FYI
Trim () ya lo hace.
El siguiente ejemplo de LINQPad:
Salidas:
fuente