Reemplace los caracteres de espacio en blanco consecutivos con un solo espacio en C#
Esta publicación discutirá cómo reemplazar caracteres de espacios en blanco consecutivos con un solo espacio en C#.
El espacio en blanco en C# consiste en el carácter de espacio ' '
, la pestaña horizontal \t
, el retorno de carro \r
, linea de alimentación \n
, etc.
1. Uso de expresiones regulares
La expresión regular \s
coincide con todo tipo de caracteres de espacio en blanco. Usando este patrón en una expresión regular, podemos reemplazar los espacios en blanco consecutivos con un solo espacio. El siguiente ejemplo de código demuestra cómo reemplazar caracteres de espacio en blanco consecutivos de la string de entrada con una string de un solo espacio.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
using System; using System.Text.RegularExpressions; public static class Extensions { private static readonly Regex regex = new Regex(@"\s+"); public static string ReplaceWhiteSpaces(this string str) { return regex.Replace(str, " "); } } public class Example { public static void Main() { string str = @"Techie Delight!!"; string s = str.ReplaceWhiteSpaces(); Console.WriteLine(s); } } /* Resultado: Techie Delight!! */ |
2. Usando String.Split()
método
También podemos usar el String.Split()
método para reemplazar cualquier tipo de caracteres de espacio en blanco con un solo espacio. La idea es dividir la string usando un carácter de espacio en blanco como delimitador y unir las secuencias no vacías con un solo espacio. El siguiente ejemplo de código muestra cómo implementar esto.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
using System; public static class Extensions { public static string ReplaceWhiteSpaces(this string str) { char[] whitespace = new char[] { ' ', '\t', '\r', '\n'}; return String.Join(" ", str.Split(whitespace, StringSplitOptions.RemoveEmptyEntries)); } } public class Example { public static void Main() { string str = @"Techie Delight!!"; string s = str.ReplaceWhiteSpaces(); Console.WriteLine(s); } } /* Resultado: Techie Delight!! */ |
3. Uso de LINQ
De manera similar al enfoque anterior, dividimos la string usando un carácter de espacio en blanco como delimitador y filtramos las secuencias no vacías usando LINQ. Luego unimos las secuencias no vacías con un solo espacio.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
using System; using System.Linq; public static class Extensions { public static string ReplaceWhiteSpaces(this string str) { char[] delims = new char[] { ' ', '\t', '\r', '\n'}; return String.Join(" ", str.Split(delims).Where(s => !String.IsNullOrWhiteSpace(s))); } } public class Example { public static void Main() { string str = @"Techie Delight!!"; string s = str.ReplaceWhiteSpaces(); Console.WriteLine(s); } } /* Resultado: Techie Delight!! */ |
Se trata de reemplazar caracteres de espacios en blanco consecutivos con un solo espacio en C#.