Hola chicos, tengo cadenas como estaEliminar espacios en blanco dentro de la cadena
"This_ ___is_a_ _STRING."
, y quiero convertir todos los múltiples espacios en uno solo. ¿Hay alguna función en C# que pueda hacer esto?
Gracias
Hola chicos, tengo cadenas como estaEliminar espacios en blanco dentro de la cadena
"This_ ___is_a_ _STRING."
, y quiero convertir todos los múltiples espacios en uno solo. ¿Hay alguna función en C# que pueda hacer esto?
Gracias
var s = "This is a string with multiple white space";
Regex.Replace(s, @"\s+", " "); // "This is a string with multiple white space"
Regex r = new Regex(@"\s+");
string stripped = r.Replace("Too many spaces", " ");
Los ejemplos de expresiones regulares en esta página son probablemente bueno, pero aquí es una solución sin expresiones regulares:
string myString = "This is a string.";
string myNewString = "";
char previousChar = ' ';
foreach(char c in myString)
{
if (!(previousChar == ' ' && c == ' '))
myNewString += c;
previousChar = c;
}
Aquí está una manera agradable y sin expresiones regulares. Con Linq.
var astring = "This is a string with to many spaces.";
astring = string.Join(" ", astring.Split(' ').Where(m => m != string.Empty));
salida "This is a string with to many spaces"
También puede usar StringSplitOptions.RemoveEmptyEntries en la llamada astring.Split() para eliminar su filtro Where. – ahawker
Usted realmente debe tratar de evitar la concatenación de cadenas múltiples ... –
@ David De acuerdo, hay optimalisations de hacer, pero usando una 'StringBuilder', o similar, habría hecho mi ejemplo más difícil de entender Darle a 'myNewString' y' previousChar' un valor inicial tampoco está optimizado, pero simplemente estoy tratando de hacer una sugerencia sobre cómo abordar el problema sin regex. Siéntase libre de hacerlo "perfecto" :) – Bazzz