AYUDA .NET

C# Split String (Cómo funciona para desarrolladores)

Actualizado 29 de agosto, 2023
Compartir:

Tanto si eres un recién llegado a la programación como un desarrollador de C# en ciernes, entender cómo dividir cadenas es una habilidad fundamental que puede mejorar enormemente tus capacidades de codificación. En este tutorial, nos sumergiremos en la manipulación de divisiones en C#.

Introducción a la división de cadenas

En programación, una cadena es una secuencia de caracteres, y hay situaciones en las que puede ser necesario dividirla en partes más pequeñas basándose en un separador o delimitador específico. Este proceso se conoce como división de cadenas, una técnica esencial cuando se trabaja con datos de texto. Imagina que tienes una frase y quieres separarla en palabras individuales: es un ejemplo clásico de división de cadenas.

En C#, el método String.Split() es tu herramienta para esta tarea. El método Split permite dividir una cadena en una matriz de subcadenas en función de un separador dado. Analicemos los distintos aspectos de la utilización eficaz de este método.

Uso de String.Split().

División básica de cadenas

El uso más sencillo de la función String.Split() método consiste en proporcionar un separador de un solo carácter. He aquí cómo dividir una frase en palabras:

string sentence = "Hello, world! Welcome to C# programming.";
char separator = ''; //  Carácter espacial
string [] words = sentence.Split(separator); //  matriz devuelta
string sentence = "Hello, world! Welcome to C# programming.";
char separator = ''; //  Carácter espacial
string [] words = sentence.Split(separator); //  matriz devuelta
Dim sentence As String = "Hello, world! Welcome to C# programming."
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'char separator = ''; string [] words = sentence.Split(separator); '  matriz devuelta
VB   C#

En este ejemplo, la frase se divide en una matriz de cadenas, en la que cada elemento representa una palabra. El separador es un espacio. Puede ajustar el carácter separador para dividir la cadena en función de diferentes criterios, como comas, punto y coma o cualquier otro carácter de su elección.

Tratamiento de los elementos vacíos de una matriz

A veces, al dividir una cadena, puede ocurrir que los separadores consecutivos den lugar a elementos de matriz vacíos. Por ejemplo, consideremos la cadena manzana, plátano, naranja. Si divides esto utilizando una coma como separador, acabarás con un array que contiene elementos vacíos entre las comas consecutivas.

Para ello, puede utilizar la opción StringSplitOptions.RemoveEmptyEntries:

string fruits = "apple,,banana,orange";
char separator = ',';

string [] fruitArray = fruits.Split(new char [] { separator }, StringSplitOptions.RemoveEmptyEntries); //  stringsplitoptions opciones
string fruits = "apple,,banana,orange";
char separator = ',';

string [] fruitArray = fruits.Split(new char [] { separator }, StringSplitOptions.RemoveEmptyEntries); //  stringsplitoptions opciones
Dim fruits As String = "apple,,banana,orange"
Dim separator As Char = ","c

Dim fruitArray() As String = fruits.Split(New Char () { separator }, StringSplitOptions.RemoveEmptyEntries) '  stringsplitoptions opciones
VB   C#

Con esta opción, los elementos vacíos de la matriz causados por separadores consecutivos se eliminarán automáticamente de la matriz resultante.

División con delimitadores múltiples

En situaciones más complejas, puede ser necesario dividir una cadena utilizando varios caracteres como delimitadores. Imagina que tienes una cadena como manzana, plátano, naranja y quieres dividirla usando punto y coma y pipas como separadores.

Para ello, puede utilizar la función string.Split()con el parámetroparams char`:

string fruits = "apple;banana orange";
char [] separators = { ';', ' ' };
//  dividir cadena delimitada
string [] fruitArray = fruits.Split(separators);
string fruits = "apple;banana orange";
char [] separators = { ';', ' ' };
//  dividir cadena delimitada
string [] fruitArray = fruits.Split(separators);
Dim fruits As String = "apple;banana orange"
Dim separators() As Char = { ";"c, " "c }
'  dividir cadena delimitada
Dim fruitArray() As String = fruits.Split(separators)
VB   C#

Esto producirá un array con tres elementos: "manzana", "plátano" y "naranja".

Limitar el número de subcadenas

En algunos casos, es posible que desee dividir una cadena en un número limitado de subcadenas. Esto puede ser útil cuando se trata de cadenas largas o cuando sólo le interesa un número específico de segmentos. La función String.Split() le permite especificar el número máximo de subcadenas a generar:

string longString = "one,two,three,four,five";
char separator = ',';
int maxSubstrings = 3;

string [] firstThreeItems = longString.Split(separator, maxSubstrings);
string longString = "one,two,three,four,five";
char separator = ',';
int maxSubstrings = 3;

string [] firstThreeItems = longString.Split(separator, maxSubstrings);
Dim longString As String = "one,two,three,four,five"
Dim separator As Char = ","c
Dim maxSubstrings As Integer = 3

Dim firstThreeItems() As String = longString.Split(separator, maxSubstrings)
VB   C#

Con el parámetro maxSubstrings fijado en 3, la matriz resultante contendrá uno,dos,ytres.` La parte restante de la cadena ("cuatro, cinco) permanece intacta.

Creación de la extensión de división de cadenas

Mientras que el built-in String.Split() cubre la mayoría de sus necesidades de división de cadenas, también puede crear su propio método de extensión para adaptar la funcionalidad a sus necesidades. Supongamos que desea dividir una cadena basándose en una subcadena específica en lugar de en un único carácter. He aquí cómo puedes hacerlo:

using System;

namespace StringSplitExtension
{
    public static class StringExtensions
    {
        public static string [] SplitBySubstring(this string input, string s)
        {
            return input.Split(new string [] { s }, StringSplitOptions.None);
        }
    }

    class Program
    {
        static void Main(string [] args)
        {
            string text = "apple+banana+orange";
            string separator = "+";

            string [] result = text.SplitBySubstring(separator);
            foreach (string item in result)
            {
                Console.WriteLine(item);
            }
        }
    }
}
using System;

namespace StringSplitExtension
{
    public static class StringExtensions
    {
        public static string [] SplitBySubstring(this string input, string s)
        {
            return input.Split(new string [] { s }, StringSplitOptions.None);
        }
    }

    class Program
    {
        static void Main(string [] args)
        {
            string text = "apple+banana+orange";
            string separator = "+";

            string [] result = text.SplitBySubstring(separator);
            foreach (string item in result)
            {
                Console.WriteLine(item);
            }
        }
    }
}
Imports System

Namespace StringSplitExtension
	Public Module StringExtensions
		<System.Runtime.CompilerServices.Extension> _
		Public Function SplitBySubstring(ByVal input As String, ByVal s As String) As String()
			Return input.Split(New String () { s }, StringSplitOptions.None)
		End Function
	End Module

	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			Dim text As String = "apple+banana+orange"
			Dim separator As String = "+"

			Dim result() As String = text.SplitBySubstring(separator)
			For Each item As String In result
				Console.WriteLine(item)
			Next item
		End Sub
	End Class
End Namespace
VB   C#

En este ejemplo, definimos una extensión llamada SplitBySubstring que toma un separador de cadena como entrada y utiliza la función incorporada String.Split()con el separador dado. Este enfoque amplía la funcionalidad de la clasestring` de C# a la vez que mantiene el código organizado y reutilizable.

Iron Suite: Una potente colección de bibliotecas para C#

Iron Suite es un completo conjunto de herramientas diseñadas para capacitar a los desarrolladores de C#, proporcionándoles funciones avanzadas en diversos ámbitos. De la manipulación de documentos al reconocimiento óptico de caracteres (OCR)Estas bibliotecas son una parte esencial de cualquier kit de herramientas de desarrollo moderno. Curiosamente, pueden estar relacionados con el método de C# String.Split(), una función fundamental de manipulación de cadenas en C#.

IronPDF: Conversión de HTML a PDF

IronPDF permite a los desarrolladores convertir HTML en PDF directamente dentro de las aplicaciones .NET. Esta potente biblioteca ayuda a crear, editar e incluso extraer contenido PDF. Ofrece una API intuitiva que hace que la manipulación de PDF sea tan sencilla como realizar operaciones de cadena como Dividir cadena. Para más información, tutoriales y orientación sobre el uso de IronPDF, visite Sitio web de IronPDF y el Tutorial de HTML a PDF.

using IronPdf;

class Program
{
    static void Main(string [] args)
    {
        var renderer = new ChromePdfRenderer();

        //  1. Convertir cadena HTML a PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        //  2. Convertir archivo HTML a PDF
        var htmlFilePath = "path_to_your_html_file.html"; //  Especifique la ruta a su archivo HTML
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        //  3. Convertir URL a PDF
        var url = "http://ironpdf.com"; // Especificar la URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main(string [] args)
    {
        var renderer = new ChromePdfRenderer();

        //  1. Convertir cadena HTML a PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        //  2. Convertir archivo HTML a PDF
        var htmlFilePath = "path_to_your_html_file.html"; //  Especifique la ruta a su archivo HTML
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        //  3. Convertir URL a PDF
        var url = "http://ironpdf.com"; // Especificar la URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()

		'  1. Convertir cadena HTML a PDF
		Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
		Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
		pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")

		'  2. Convertir archivo HTML a PDF
		Dim htmlFilePath = "path_to_your_html_file.html" '  Especifique la ruta a su archivo HTML
		Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
		pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")

		'  3. Convertir URL a PDF
		Dim url = "http://ironpdf.com" ' Especificar la URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
VB   C#

IronXL: Excel en Operaciones

Cuando se trata de trabajar con archivos Excel dentro de aplicaciones C#, IronXL es la biblioteca a la que hay que recurrir. Permite a los desarrolladores leer, escribir y manipular fácilmente archivos Excel, de forma muy similar a la manipulación de cadenas mediante C#.

IronOCR: Reconocimiento óptico de caracteres

IronOCR es una biblioteca esencial para los desarrolladores que incorporan funciones de OCR a sus aplicaciones. Aprovechando IronOCR, puede leer texto de imágenes y documentos escaneados, transformándolos en cadenas manejables similares a las que podría manipular utilizando C# Split String. Para obtener más información sobre IronOCR y cómo integrarlo en sus proyectos, visite la página **Página web de IronOCR.

IronBarcode: Escaneado y generación de códigos de barras

Por último, Iron Suite incluye IronBarcode, una solución completa para leer y generar códigos de barras en aplicaciones C#. Esta biblioteca reduce la complejidad de las operaciones con códigos de barras a un nivel comparable al de las manipulaciones de cadenas como C#.

Conclusión

Iron Suite, con sus diversos componentes IronPDF, IronXL, IronOCR e IronBarcode, ofrece soluciones sencillas para los desarrolladores que trabajan con PDF, archivos Excel, OCR y códigos de barras. Al simplificar las operaciones complejas, del mismo modo que el método Split String de C# simplifica la manipulación de cadenas, estas bibliotecas son grandes herramientas para los desarrolladores modernos.

Cada uno de estos increíbles productos ofrece **Prueba gratuita para explorar y experimentar con toda la gama de funciones. Las licencias de cada producto comienzan a partir de $749, lo que supone una puerta de acceso asequible a funcionalidades avanzadas.

Se puede adquirir un paquete completo Iron Suite por el precio de sólo dos productos individuales. Esta oferta conjunta no sólo amplía las posibilidades de su kit de herramientas de desarrollo, sino que también representa un valor excepcional.

< ANTERIOR
C# Getter Setter (Cómo funciona para desarrolladores)
SIGUIENTE >
.NET Core Polly (Cómo funciona para desarrolladores)

¿Listo para empezar? Versión: 2024.7 recién publicada

Descarga gratuita de NuGet Descargas totales: 9,974,197 Ver licencias >
123