El documento presenta tres ejercicios de programación en C# relacionados con cadenas de texto y expresiones regulares. El primer ejercicio extrae números pares de cadenas en una matriz. El segundo elimina comentarios de cadenas usando expresiones regulares. El tercero elimina caracteres repetidos en una cadena.
0 calificaciones0% encontró este documento útil (0 votos)
17 vistas3 páginas
El documento presenta tres ejercicios de programación en C# relacionados con cadenas de texto y expresiones regulares. El primer ejercicio extrae números pares de cadenas en una matriz. El segundo elimina comentarios de cadenas usando expresiones regulares. El tercero elimina caracteres repetidos en una cadena.
El documento presenta tres ejercicios de programación en C# relacionados con cadenas de texto y expresiones regulares. El primer ejercicio extrae números pares de cadenas en una matriz. El segundo elimina comentarios de cadenas usando expresiones regulares. El tercero elimina caracteres repetidos en una cadena.
El documento presenta tres ejercicios de programación en C# relacionados con cadenas de texto y expresiones regulares. El primer ejercicio extrae números pares de cadenas en una matriz. El segundo elimina comentarios de cadenas usando expresiones regulares. El tercero elimina caracteres repetidos en una cadena.
Descargue como PDF, TXT o lea en línea desde Scribd
Descargar como pdf o txt
Está en la página 1de 3
1 //Ejercicio 1. Kharchenko Lina.
Arrays y expresiones regulares (5 puntos)
2 3 using System; 4 using System.Text.RegularExpressions; 5 6 class Program 7 { 8 public static void Main() 9 { 10 string[] cadenas = { 11 "10 7 8/9*23", 12 "12Hola, mundo24 37 11 80", 13 "En un lugar de la Mancha de cuyo nombre no quiero acordarme", 14 "10 20 30 40 50" 15 }; 16 17 int[,] matrizNumerosPares = ObtenerMatrizNumerosPares(cadenas); 18 19 ImprimirArray("Array de cadenas:", cadenas); 20 Console.WriteLine(); 21 ImprimirMatriz("Matriz de números pares:", matrizNumerosPares); 22 23 Console.ReadLine(); 24 } 25 26 static int[,] ObtenerMatrizNumerosPares(string[] cadenas) 27 { 28 int[,] matriz = new int[cadenas.Length, 3]; 29 30 for (int i = 0; i < cadenas.Length; i++) 31 { 32 string[] numerosEnCadena = ObtenerNumerosPares(cadenas[i]); 33 34 for (int j = 0; j < 3; j++) 35 { 36 if (j < numerosEnCadena.Length) 37 { 38 matriz[i, j] = int.Parse(numerosEnCadena[j]); 39 } 40 else 41 { 42 matriz[i, j] = default(int); 43 } 44 } 45 } 46 47 return matriz; 48 } 49 50 static string[] ObtenerNumerosPares(string cadena) 51 { 52 Regex regex = new Regex(@"\b[24680]+\b"); 53 MatchCollection matches = regex.Matches(cadena); 54 55 string[] numerosPares = new string[matches.Count]; 56 57 for (int i = 0; i < matches.Count; i++) 58 { 59 numerosPares[i] = matches[i].Value; 60 } 61 62 return numerosPares; 63 } 64 65 static void ImprimirArray(string titulo, string[] array) 66 { 67 Console.WriteLine(titulo); 68 69 for (int i = 0; i < array.Length; i++) 70 { 71 Console.WriteLine($"[{i}] = \"{array[i]}\""); 72 } 73 } 74 75 static void ImprimirMatriz(string titulo, int[,] matriz) 76 { 77 Console.WriteLine(titulo); 78 79 for (int i = 0; i < matriz.GetLength(0); i++) 80 { 81 Console.Write("["); 82 for (int j = 0; j < matriz.GetLength(1); j++) 83 { 84 Console.Write($" {matriz[i, j]} "); 85 } 86 Console.WriteLine("]"); 87 } 88 } 89 } 90 91 92 93 94 // // Ejercicio 2. Kharchenko Lina. Expresiones regulares (1 puntos) 95 // //---------------------------------------------------------------------------- 96 // Crea un programa que pida al usuario una cadena de texto y que elimine de dicha 97 // cadena todos los comentarios tipo C# (// -> hasta final de linea y /* ... * / -> 98 // texto entre los símbolos /* y * /). Imprime la cadena resultante. No se permiten 99 // comentarios anidados. No es necesario ni controlar errores ni usar métodos. 100 101 // Nota 1: no se permiten comentarios anidados 102 // Nota 2: puedes usar expresiones regulares o recorrer la cadena de texto carácter a carácter, 103 // pero la solución con expresiones regulares es mucho más sencilla y corta. 104 105 // Ejemplo de ejecución: 106 // Introduce una cadena de texto: En un // lugar /*de la Mancha*/ de cuyo nombre no quiero acordarme 107 // Cadena sin comentarios: En un 108 109 // Ejemplo de ejecución: 110 // Introduce una cadena de texto: En un lugar /*de la Mancha*/ de cuyo /*nombre * / no quiero*/ acordarme 111 // Cadena sin comentarios: En un lugar de cuyo acordarme 112 113 // Nota: Los comentarios estarán siempre bien formados. Todo par /* tendrá su par */ 114 // pero podrían haber caracteres * o / sueltos dentro de la cadena. 115 116 117 // ---------------------------------------------------------------------------- 118 // 119 using System; 120 using System.Text.RegularExpressions; 121 122 class Program 123 { 124 static void Main() 125 { 126 Console.Write("Introduce una cadena de texto: "); 127 string cadenaOriginal = Console.ReadLine(); 128 129 string cadenaSinComentarios = EliminarComentarios(cadenaOriginal); 130 131 Console.WriteLine($"Cadena sin comentarios: {cadenaSinComentarios}"); 132 133 Console.ReadLine(); 134 } 135 136 static string EliminarComentarios(string cadena) 137 { 138 139 cadena = Regex.Replace(cadena, @"//.*", ""); 140 141 142 cadena = Regex.Replace(cadena, @"/\*.*?\*/", ""); 143 144 return cadena; 145 } 146 } 147 148 149 // ---------------------------------------------------------------------------- 150 //Kharchenko Lina 151 // Ejercicio 3. Cadenas (4 puntos) 152 /* ---------------------------------------------------------------------------- 153 Crea un método al que le pasamos una cadena y devolverá otra cadena con los caracteres 154 que estén repetidos en la cadena original convertidos a un único carácter. 155 Por ejemplo: 156 Convertirá la cadena "Hoolaa, muuuundo" en "Hola, mundo" 157 Crea un main que pida al usuario una cadena de texto y que imprima la cadena resultante. 158 Usa stringbuilder para crear la cadena resultante. 159 Si al método se le pasa la cadena vacía o null, devolverá la cadena vacía o null. 160 */ 161 162 163 using System; 164 using System.Text; 165 166 class Program 167 { 168 static void Main() 169 { 170 Console.Write("Introduce una cadena de texto: "); 171 string cadenaOriginal = Console.ReadLine(); 172 173 string cadenaResultante = EliminarRepetidos(cadenaOriginal); 174 175 Console.WriteLine($"Cadena resultante: {cadenaResultante}"); 176 177 Console.ReadLine(); 178 } 179 180 static string EliminarRepetidos(string cadena) 181 { 182 if (string.IsNullOrEmpty(cadena)) 183 { 184 return cadena; 185 } 186 187 StringBuilder resultado = new StringBuilder(); 188 189 for (int i = 0; i < cadena.Length; i++) 190 { 191 char caracterActual = cadena[i]; 192 193 194 if (resultado.ToString().IndexOf(caracterActual) == -1) 195 { 196 resultado.Append(caracterActual); 197 } 198 } 199 200 return resultado.ToString(); 201 } 202 }