Vamos a desarrollar una aplicación que ofrezca un menú de opciones al usuario, cada opción será implementada por medio de un método propio para ser llamada desde el Main(). Por tanto lo primero es declarar una variable static de tipo string fuera del Main() llamada “inputTexto” e inicializarla vacía. De esta forma esta variable podrá ser vista por todos los métodos que implemente fuera del Main().
En el Main() solicitar al usuario que ingrese una frase por teclado, leer la frase y almacenarla en la variable “inputTexto”.Validar que se haya ingresado texto a la variable, si esto no sucede se debe entregar un mensaje de error al usuario.
Cuando está seguro de que se ha ingresado un texto, declare una variable llamada “opcion” de tipo entera para guardar la opción seleccionada del menú y dentro de un ciclo iterativo presentar un menú al usuario que ofrezca las siguientes opciones (implementar MostrarMenu() como método que retorne un entero con el número de la opción seleccionada):
- Mostrar la frase en MAYÚSCULA y minúscula.
- Mostrar la cantidad de caracteres de la frase.
- Mostrar unaSubcadena.
- Reemplazar un texto.
- Salir.
El ciclo iterativo debe repetirse mientras el usuario no digite la opción 5.
Dentro del ciclo iterativo verifique por medio de un switch o if anidados la opción seleccionada y realice los llamados a los métodos según corresponda.
Si la opción es 5, terminar la ejecución del programa.
Crear un método Pausa que sirva para que la consola no se cierre y se pueda ver el resultado de cada opción, además una vez que se presione cualquier tecla limpie la pantalla para volver a visualizar el menú.
- Opción 1: Crear el método MayusculaMinuscula sin retorno y que muestre la frase ingresada en ambos formatos. *Ayuda: usar métodos ToUpper(),ToLower()
- Opción 2: Crear el método CantidadDeCaracteres que cuente los caracteres de la frase (considerar los espacios en blanco) y muestre el valor por pantalla. *Ayuda: usar métodos Length
- Opción 3: Crear el método MostrarSubCadena que dada una posición de inicio y una cantidad de caracteres muestre la subcadena resultante.
- Se deben declarar dos enteros “star” y “cantidad” inicializados en cero.
- Declarar un string “varAux” para leer los valores desde teclado.
- Solicitar al usuario que ingrese la posición de inicio, guardarla en “varAux”, validar que es un número con el métodoTryParse() y utilizar como variable de salida “star”, además por medio de Lengthvalidar que se ingresó un valor no mayor al largo de la frase.
- Solicitar al usuario que ingrese la cantidad de caracteres, guardarla en “varAux”, validar que es un número con el método TryParse() y utilizar como variable de salida “cantidad”.
- Una vez realizada todas las validaciones, muestre la SubCadena resultante utilizando el método Substring().
- Opción 4: Crear el método Reemplazo que buscará una palabra ingresada por el usuario en el texto original y la reemplazará por una nueva palabra ingresada por el mismo.
- Declarar dos string “textOriginal” y “textNuevo” e inicializarlos vacíos.
- Solicitar al usuario que ingrese texto a reemplazar, asignarlo a “textOriginal” y por medio del método IndexOf() validar que existe en la frase original (si no encuentra coincidencia recuerde que éste método retorna un -1).
- Solicitar al usuario el nuevo texto, guardarlo en “textNuevo”, realizar el reemplazo en la frase original con el método Replace() y mostrar los resultados por pantalla.
Código:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace StringDecisionIteracion { class Program { //declaro variable para guardar frase ingresada static String inputTexto = ""; static void Main(string[] args) { //solicito y guardo frase Console.WriteLine("ingrese una frase"); inputTexto = Console.ReadLine(); //valido que frase ingresada no sea en blanco if (inputTexto == "") { Console.WriteLine("error: no ha ingresado texto"); Console.Read(); } else { //declaro variable para guardar opcion seleccionada int opcion; do { //muestro frase ingresada Console.WriteLine("Frase ingresada: " + inputTexto); Console.WriteLine(); //muestro menu opcion = mostrarMenu(); //evaluo la opcion ingresada switch (opcion) { case 1: mayusculaMinuscula(inputTexto); pausa(); break; case 2: cantidadCaracteres(inputTexto); pausa(); break; case 3: mostrarSubCadena(inputTexto); pausa(); break; case 4: reemplazo(inputTexto); pausa(); break; case 5: Console.WriteLine("Saliendo ..."); break; default: Console.WriteLine("Opcion no valida"); pausa(); break; } //si la opcion es 5 termino la aplicacion, de lo contrario repito el ciclo } while (opcion != 5); } } //metodo para mostrar el menu, retorna opcion seleccionada static int mostrarMenu() { //declaro variable para guardar opcion int opcion; //muestro menu y guardo opcion Console.WriteLine("1.- Mostrar la frase en MAYÚSCULA y minúscula."); Console.WriteLine("2.- Mostrar la cantidad de caracteres de la frase."); Console.WriteLine("3.- Mostrar una Subcadena."); Console.WriteLine("4.- Reemplazar un texto."); Console.WriteLine("5.- Salir."); opcion = int.Parse(Console.ReadLine()); //retorno opcion return opcion; } //metodo para pausar y limpiar pantalla static void pausa() { //pauso la aplicacion hasta que se presione una tecla Console.ReadKey(); //limpio la pantalla Console.Clear(); } //metodo para transformar a mayuscula y minuscula static void mayusculaMinuscula(String frase) { //muestro la frase en mayuscula Console.WriteLine("Frase en Mayuscula: " + frase.ToUpper()); //muestro la frase en minuscula Console.WriteLine("Frase en Minuscula: " + frase.ToLower()); } //metodo para mostrar cantidad de carcteres static void cantidadCaracteres(String frase) { //muestro cantidad de caracteres de la frase Console.WriteLine("Cantidad de caracteres de '{0}' es '{1}'", frase, frase.Length); } //metodo para mostrar una subcadena static void mostrarSubCadena(String frase) { //declaro variables para inicio de cadena, cantidad caracteres y guardar ingreso de datos int star, cantidad = 0; String varAux; //pido y guardo posicion de inicio Console.WriteLine("Ingrese posicion de inicio"); varAux = Console.ReadLine(); //valido que valor ingresado sea un numero if (int.TryParse(varAux, out star)) { //valido que la posicion de inicio no sea mayor al largo de la frase if (star <= frase.Length) { //pido y guardo cantidad de caracteres Console.WriteLine("Ingrese cantidad de caracteres"); varAux = Console.ReadLine(); //valido que valor ingresado sea un numero if (int.TryParse(varAux, out cantidad)) { //obtebgo la subcadena y la muestro por pantalla varAux = frase.Substring(star,cantidad); Console.WriteLine("La sub cadena seleccionada es: " + varAux); } else { //si valor ingresado no es numero, muestro error Console.WriteLine("No ha ingresado un numero"); } } else { //si posicion de inicio es mayor al largo de la frase, muestro error Console.WriteLine("Valor excede el largo de la frase"); } } else { //si valor ingresado no es numero, muestro error Console.WriteLine("No ha ingresado un numero"); } } //metodo para reemplazar texto static void reemplazo(String frase) { //declaro variables para texto original y texto nuevo String textOriginal, textNuevo = ""; //pido y guardo el texto que se quiere reemplazar Console.WriteLine("Ingrese texto a reemplazar"); textOriginal = Console.ReadLine(); //valido que texto se encuentre en la frase (si lo encuentra retorna posicion, de lo contrario -1) if (frase.IndexOf(textOriginal) >= 0) { //pido y guardo texto nuevo Console.WriteLine("Ingrese el texto nuevo"); textNuevo = Console.ReadLine(); //muestro por pantalla la frase con el texto reemplazado Console.WriteLine("El nuevo texto es: " + frase.Replace(textOriginal,textNuevo)); } else { //si texto no se encuentra, muestro mensaje Console.WriteLine("Texto no encontrado"); } } } }
No hay comentarios:
Publicar un comentario