Ejercicio: Descubrimiento de Split() y Join()
- 10 minutos
Según continúe su trabajo de desarrollo para la empresa de logística, comienza a crear una serie de aplicaciones pequeñas. Estas aplicaciones trabajan juntas para tomar los datos del sistema de uno de los asociados, modificarlos y luego pasarlos a un sistema interno en el formato requerido.
Para realizar la transformación de datos, debe aceptar los datos entrantes como una cadena, analizarlos en elementos de datos más pequeños y, finalmente, manipularlos para que coincidan con el formato diferente necesario. ¿Cómo se pueden analizar los datos de cadena en elementos de datos más pequeños?
Métodos de matriz del tipo de datos String
Las variables de tipo string tienen muchos métodos integrados que convierten una sola cadena en una matriz de cadenas más pequeñas o en una matriz de caracteres individuales.
Hay veces en que, al procesar los datos de otros sistemas informáticos, se formatean o codifican de una manera que no nos sirve para lo que estamos buscando. En estos casos, se usan los métodos de matriz del tipo de datos string para analizar una cadena en una matriz.
Uso de ToCharArray() para invertir un string
Elimine o use el operador de comentario de línea
//para comentar todo el código de los pasos anteriores.Actualice el código en el editor de Visual Studio Code de la siguiente manera:
string value = "abc123"; char[] valueArray = value.ToCharArray();
En este ejemplo, el método ToCharArray() se usa para crear una matriz char, donde cada elemento de la matriz representa un carácter de la cadena original.
Invertiremos y combinaremos la matriz de caracteres en una nueva cadena.
A continuación, se invierte el orden de los caracteres de la matriz y, a continuación, se usa el método Write para combinarlos de nuevo en una única salida.
Actualice el código en el editor de Visual Studio Code de la siguiente manera:
string value = "abc123"; char[] valueArray = value.ToCharArray(); Array.Reverse(valueArray); string result = new string(valueArray); Console.WriteLine(result);La expresión
new string(valueArray)crea una instancia vacía de la claseSystem.String(que es la misma que el tipo de datosstringen C#) y pasa la matriz de caracteres como un constructor.Nota:
¿Qué es la palabra clave
new? ¿Cómo se relaciona la claseSystem.Stringcon el tipo de datosstringen C#? ¿Qué es un constructor? Todas son preguntas excelentes, que lamentablemente quedan fuera del ámbito de este módulo. Le recomendamos que siga aprendiendo sobre la biblioteca de clases de .NET, así como sobre las clases y los objetos de C#, para entender plenamente qué sucede en segundo plano con esta expresión de código. Por ahora, use un motor de búsqueda y la documentación de Microsoft para buscar ejemplos que usar en situaciones como esta, que tenga claro que quiere realizar una conversión, pero no esté seguro de cómo hacerlo con C#.En el menú Archivo Visual Studio Code, seleccione Guardar.
El archivo Program.cs debe guardarse antes de compilar o ejecutar el código.
En el panel EXPLORADOR, para abrir un terminal en la ubicación de la carpeta TestProject, haga clic con el botón derecho en TestProject y seleccione abrir en terminal integrado.
Debe abrirse un panel de terminal y debe incluir un símbolo del sistema que muestre que el terminal está abierto en la ubicación de la carpeta TestProject.
En el símbolo del sistema del terminal, para ejecutar el código, escriba dotnet run y presione Intro.
Nota:
Si ve un mensaje que indica "No se ha podido encontrar un proyecto para ejecutar", asegúrese de que el símbolo del sistema del terminal muestra la ubicación prevista de la carpeta TestProject. Por ejemplo:
C:\Users\someuser\Desktop\csharpprojects\TestProject>Debería ver la siguiente salida:
321cba
Combinación de todos los caracteres en una nueva cadena de valores separados por comas mediante Join()
En algunos casos, es posible que tenga que separar cada elemento de la matriz de caracteres mediante una coma, que es una práctica habitual al trabajar con datos representados como texto ASCII. Para ello, excluiremos la línea de código que agregamos en el paso 2 y usaremos el método String de la clase Join(), pasando el carácter con el que queremos delimitar cada segmento (la coma) y la matriz en sí.
Actualice el código en el editor de Visual Studio Code de la siguiente manera:
string value = "abc123"; char[] valueArray = value.ToCharArray(); Array.Reverse(valueArray); // string result = new string(valueArray); string result = String.Join(",", valueArray); Console.WriteLine(result);Guarde el archivo de código y use Visual Studio Code para ejecutar el código.
Debería ver la siguiente salida:
3,2,1,c,b,a
Split() de la nueva cadena de valores separados por comas en una matriz de cadenas
Para completar el código, se usa el método Split(). Este método está diseñado para variables de tipo string y crea una matriz de cadenas.
Use el editor de Visual Studio Code para agregar las siguientes líneas de código en la parte inferior del archivo:
string[] items = result.Split(','); foreach (string item in items) { Console.WriteLine(item); }Tómese un minuto para revisar el código anterior.
La coma se proporciona a
.Split()como delimitador para dividir una cadena larga en otras más pequeñas. A continuación, el código usa un bucleforeachpara recorrer en iteración cada elemento de la matriz de cadenas recién creada,items.Compruebe que el código aparece ahora de la siguiente manera:
string value = "abc123"; char[] valueArray = value.ToCharArray(); Array.Reverse(valueArray); // string result = new string(valueArray); string result = String.Join(",", valueArray); Console.WriteLine(result); string[] items = result.Split(','); foreach (string item in items) { Console.WriteLine(item); }Guarde el archivo de código y use Visual Studio Code para ejecutar el código.
Al ejecutar el código se ve el resultado siguiente:
3,2,1,c,b,a 3 2 1 c b aLa matriz
itemscreada constring[] items = result.Split(',');se usa en el bucleforeachy muestra los caracteres individuales delstringoriginal contenido en la variablevalue.
Resumen
Estos son algunos puntos clave que recordar al trabajar con cadenas y matrices:
- Para crear una matriz, use métodos como
ToCharArray()ySplit() - Para volver a convertir la matriz en una sola cadena, use métodos como
Join()o cree una nueva cadena pasando una matriz dechar