sharp - replaceall c# string
Método String.Replace(char, char) en C# (12)
¿Qué tal crear un método de extensión como este ...?
public static string ReplaceTHAT(this string s)
{
return s.Replace("/n/r", "");
}
Y luego, cuando quieras reemplazar eso donde quieras, puedes hacer esto.
s.ReplaceTHAT();
¡Atentamente!
¿Cómo lo reemplazo /n
con espacio vacío?
Obtengo un error literal vacío si hago esto:
string temp = mystring.Replace(''/n'', '''');
@gnomixa - ¿Qué quieres decir con tu comentario sobre no lograr nada? Lo siguiente me funciona en VS2005.
Si su objetivo es eliminar los caracteres de nueva línea, acortando así la cadena, observe esto:
string originalStringWithNewline = "12/n345"; // length is 6
System.Diagnostics.Debug.Assert(originalStringWithNewline.Length == 6);
string newStringWithoutNewline = originalStringWithNewline.Replace("/n", ""); // new length is 5
System.Diagnostics.Debug.Assert(newStringWithoutNewline.Length == 5);
Si su objetivo es reemplazar los caracteres de nueva línea con un carácter de espacio, dejando la longitud de la cadena igual, mire este ejemplo:
string originalStringWithNewline = "12/n345"; // length is 6
System.Diagnostics.Debug.Assert(originalStringWithNewline.Length == 6);
string newStringWithoutNewline = originalStringWithNewline.Replace("/n", " "); // new length is still 6
System.Diagnostics.Debug.Assert(newStringWithoutNewline.Length == 6);
Y debe reemplazar cadenas de un solo carácter en lugar de caracteres porque '''' no es un carácter válido para pasar a Reemplazar (cadena, char)
Aquí está tu respuesta exacta ...
const char LineFeed = ''/n''; // #10
string temp = new System.Text.RegularExpressions.Regex(
LineFeed
).Replace(mystring, string.Empty);
Pero este es mucho mejor ... Especialmente si estás tratando de dividir las líneas (también puedes usarlo con Split)
const char CarriageReturn = ''/r''; // #13
const char LineFeed = ''/n''; // #10
string temp = new System.Text.RegularExpressions.Regex(
string.Format("{0}?{1}", CarriageReturn, LineFeed)
).Replace(mystring, string.Empty);
Como reemplazar "/ n" por "" no le da el resultado que desea, eso significa que lo que debe reemplazar no es realmente "/ n", sino alguna otra combinación de caracteres.
Una posibilidad es que lo que deba reemplazar sea la combinación de caracteres "/ r / n", que es el código de nueva línea en un sistema Windows. Si reemplaza solo el carácter "/ n" (avance de línea), dejará el carácter "/ r" (retorno de carro), que aún se puede interpretar como un salto de línea, según cómo muestre la cadena.
Si la fuente de la cadena es específica del sistema, debe usar esa cadena específica; de lo contrario, debe usar Environment.NewLine para obtener la combinación de caracteres de nueva línea para el sistema actual.
string temp = mystring.Replace("/r/n", string.Empty);
o:
string temp = mystring.Replace(Environment.NewLine, string.Empty);
Encontrado en Bytes.com :
string temp = mystring.Replace(''/n'', ''/0'');// ''/0''
representa un char vacío
Esto debería funcionar.
string temp = mystring.Replace("/n", "");
¿Estás seguro de que hay / n nuevas líneas reales en tu cadena original?
Sé que esta es una publicación anterior, pero me gustaría agregar mi método.
public static string Replace(string text, string[] toReplace, string replaceWith)
{
foreach (string str in toReplace)
text = text.Replace(str, replaceWith);
return text;
}
Ejemplo de uso:
string newText = Replace("This is an /r/n /n an example.", new string[] { "/r/n", "/n" }, "");
Si utiliza
string temp = mystring.Replace("/r/n", "").Replace("/n", "");
entonces no tendrás que preocuparte por la procedencia de tu cadena.
Una advertencia: en .NET, el salto de línea es "/ r / n". Entonces, si está cargando su texto desde un archivo, es posible que deba usarlo en lugar de solo "/ n"
editar> como señaló samuel en los comentarios, "/ r / n" no es específico de .NET, pero es específico de Windows.
String.Replace(''/n'', '''')
no funciona porque ''''
no es un literal de caracteres válido.
Si usa la anulación String.Replace (string, string), debería funcionar.
string temp = mystring.Replace("/n", "");
string temp = mystring.Replace("/n", " ");
string temp = mystring.Replace("/n", string.Empty).Replace("/r", string.Empty);
Obviamente, esto elimina tanto ''/ n'' como ''/ r'' y es tan simple como sé cómo hacerlo.