Programación I, Guía 8 Tema: “Cadenas en C#”. 1 Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación I Objetivos Mostrar la implementación y el uso de cadenas de texto. Identificar las funciones de tratamiento de cadenas en C#. Introducción Una definición de cadena es la siguiente: Serie de caracteres tratados como una sola unidad. Una cadena puede incluir letras, dígitos y varios caracteres especiales (+, -, *, /, $, entre otros). Una cadena en C# es una matriz de caracteres que se declara utilizando la palabra clave string. Un literal de cadena se declara utilizando las comillas, como se muestra en el siguiente ejemplo: String S = “Estamos en la guía 8”; Los objetos de cadena son inmutables, lo que significa que no se pueden cambiar una vez creados. Los métodos que actúan sobre las cadenas, devuelven los nuevos objetos de cadena. En muchas ocasiones es preciso trabajar con cadenas de caracteres en las diferentes aplicaciones que se desarrollan, por eso es muy necesario conocer algunas de las funciones más utilizadas para el tratamiento de estas estructuras. Material y Equipo Guía de laboratorio No. 8. Computadora con Visual Studio 2013 o superior. Dispositivo de almacenamiento (USB). Procedimiento G8 Ejemplo1: Función de comparación de cadenas Equals(). Este programa comprueba que el usuario y contraseña sean los correctos; de lo contrario, al tercer intento cierra el programa. 1 2 3 4 5 6 namespace Guia8_Ejemplo1 { class Program { static void Main(string[] args) { 2 Programación I, Guía 8 7 Login(); 8 Console.ReadKey(); 9 } 10 static void Login() 11 { 12 String Usuario = "user"; 13 String Password = "123456"; 14 Console.Title = "L O G I N"; 15 // Con la siguiente funcion mostramos fecha y hora del sistema Console.WriteLine("Fecha y hora del sistema: [" + DateTime.Now.ToString() + "]"); 16 17 Console.ReadLine(); 18 for (int i = 0; i < 3; i++) 19 { 20 Console.Clear(); 21 Console.WriteLine("Intento: [" + (i + 1) + "]"); 22 Console.Write("Usuario: "); 23 String User = Console.ReadLine(); 24 Console.Write("Contraseña: "); 25 String Pass = Console.ReadLine(); 26 if ((User.Equals(Usuario)) && (Pass.Equals(Password))) 27 { 28 Console.WriteLine("\n"); 29 Console.WriteLine("BIENVENID@ AL PROGRAMA.... "); 30 break; 31 } 32 else 33 { 34 Console.WriteLine("\n"); 35 Console.WriteLine("Saliendo del programa...intente más tarde..."); 36 } 37 } 38 } 39 } 40 } G8 Ejemplo2: En este ejemplo, utilizamos la función Replace() para sustituir un carácter específico por otro carácter. 1 namespace G8_Ejemplo2 2 { 3 class Program 4 { 5 static void Main(string[] args) 6 { 7 String cadena, cambio, opcion; 8 do 9 { 10 Console.Clear(); 11 Console.WriteLine("Escribe una oracion: "); 12 cadena = Console.ReadLine(); 13 cambio = cadena.Replace("a", "*"); 14 Console.WriteLine("\t" + cambio); 15 Console.WriteLine("Desea ingresar otra oracion? (s/n)"); Programación I. Guía 8 3 16 opcion = Console.ReadLine(); 17 }while (opcion=="S" || opcion=="s"); 18 Console.ReadKey(); 19 } 20 } 21 } G8 Ejemplo3: En este ejemplo vamos a desarrollar una pequeña aplicación que verifica si una frase ingresada es palíndroma. Una frase palíndroma es aquella que se lee igual de izquierda a derecha y viceversa. 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 28 29 30 31 32 33 34 35 36 37 38 namespace G8_Ejemplo3 { class Program { static void Main(string[] args) { Console.Title = "Digitar una palabra para averiguar si es palindroma"; String op; do { Console.Clear(); Palindroma(); Console.WriteLine("Desea verificar otra frase? (s/n)"); op = Console.ReadLine(); } while (op == "S" || op == "s"); Console.ReadKey(); } static void Palindroma() { String cadena1 = "", cadena2 = ""; Console.WriteLine("Escribe una palabra: "); cadena1 = Console.ReadLine(); for (int i = cadena1.Length - 1; i >= 0; i--) { cadena2 = cadena2 + cadena1[i]; } Console.WriteLine("La cadena invertida es: " + cadena2); if (String.Equals(cadena1, cadena2)) { Console.WriteLine("La cadena " + cadena1 + " es palindroma..."); } else { Console.WriteLine("La cadena " + cadena1 + " no es palindroma..."); } } } } 4 Programación I, Guía 8 G8 Ejemplo4: Funciones para convertir cadenas a mayúsculas y minúsculas. Además utilizamos la función que calcula el número de caracteres de una frase cualquiera (incluye espacios en blanco como caracteres). 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 namespace G8_Ejemplo4 { class Program { static void Main(string[] args) { Console.Title = "Programa que convierte una oración"; String cad1, cad2, cad3; int largo; Console.WriteLine("Digitar una frase que tenga letras mayúsculas y minúsculas: "); cad1 = Console.ReadLine(); // la siguiente función calcula el número de caracteres largo = cad1.Length; Console.WriteLine("La frase [" + cad1 + "] tiene [" + largo + "] caracteres."); // la siguiente función convierte la frase a letras minúsculas cad2 = cad1.ToLower(); Console.WriteLine("La frase en letras minúsculas es : " + cad2); // la siguiente función convierte la frase a letras minúsculas cad3 = cad1.ToUpper(); Console.WriteLine("La frase en letras mayúsculas es : " + cad3); Console.ReadKey(); } } } Análisis de Resultados Desarrollar las siguientes aplicaciones en C#: 1. Comparar dos cadenas de caracteres haciendo uso de la función Compare(). 2. Concatenar cuatro cadenas de caracteres utilizando la función Concat(). 3. Invertir los elementos de un vector tipo String. Investigación Complementaria Se evaluará la presentación de los ejercicios propuestos en la sesión de laboratorio. NOTA: Estudiemos todos los contenidos para la próxima semana, ya que tendremos el examen parcial. Bibliografía Deitel, Harvey M. y Paul J. Deitel, Cómo Programar en C#, Segunda Edición, México, 2007.