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_Ejemplo_1: 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 namespace Guia8_Ejemplo1 { class Program { static void Main(string[] args) 2 Programación I, Guía 8 6 { 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 mas tarde..."); 36 } 37 } 38 } 39 } 40 } G9_Ejemplo_2 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(); Programación I. Guía 8 3 13 cambio = cadena.Replace("a", "*"); 14 Console.WriteLine("\t" + cambio); 15 Console.WriteLine("Desea ingresar otra oracion? (s/n)"); 16 opcion = Console.ReadLine(); 17 }while (opcion=="S" || opcion=="s"); 18 Console.ReadKey(); 19 } 20 } 21 } G9_Ejemplo_3 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 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..."); } } } Programación I, Guía 8 4 38 } G9_Ejemplo_4 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 oracion"; String cad1, cad2, cad3; int largo; Console.WriteLine("Digitar una frase que tenga letras mayusculas y minusculas: "); cad1 = Console.ReadLine(); // la siguiente funcion calcula el numero de caracteres largo = cad1.Length; Console.WriteLine("La frase [" + cad1 + "] tiene [" + largo + "] caracteres."); // la siguiente funcion convierte la frase a letras minusculas cad2 = cad1.ToLower(); Console.WriteLine("La frase en letras minusculas es : " + cad2); // la siguiente funcion convierte la frase a letras minusculas cad3 = cad1.ToUpper(); Console.WriteLine("La frase en letras mayusculas 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.