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 \n
y \r
de la cadena de arriba.
Lo intenté string s = s.Trim(new char[] {'\n', '\r'});
pero no ayudó.
Desea utilizar
String.Replace
para eliminar un personaje.Tenga en cuenta que
String.Trim(params char[] trimChars)
solo elimina los caracteres iniciales y finalestrimChars
de 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.Join
que invocaráToString
cada unochar
devuelto por la consulta. Es mejor simplemente pasar los resultados de la consulta alstring
constructor.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.
\t
en realidad se clasifica como un espacio horizontal, no un espacio vertical. (prueba de inserción\t
en 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
Trim
si desea eliminar desde el inicio y el final.fuente
FYI
Trim () ya lo hace.
El siguiente ejemplo de LINQPad:
Salidas:
fuente