package com.trifulcas.cadenas; public class EjerciciosCadenas { public static void main(String[] args) { System.out.println(eliminar("que queso es un paquete", "que")); System.out.println(contarChar("hola que tal", 'a')); System.out.println(contarChar2("hola que tal", 'a')); System.out.println(sinEspacios(" hola que tal ")); System.out.println(sinEspaciosMejor(" hola que tal ")); System.out.println(masCorta("hola que tal","bbien")); } /* * Escribir una función que elimine todas las ocurrencias de una subcadena * específica de una cadena dada. * eliminar("que queso es un paquete","que")–>" so es un pate" */ static String eliminar(String cadena, String cadenaAEliminar) { // Simplemente reemplazo la cadena con la cadena vacía return cadena.replace(cadenaAEliminar, ""); } /* * Escribir una función que cuente el número de veces que se repite un carácter * específico en una cadena dada. contarChar("hola que tal",'a')–>2 */ static int contarChar(String cadena, char caracter) { int cont = 0; // Recorro toda la cadena for (int i = 0; i < cadena.length(); i++) { // Si el caracter en esa posición es igual al caracter que me pasan if (cadena.charAt(i) == caracter) { cont++; // Cuento 1 más } } return cont; } static int contarChar2(String cadena, char caracter) { // Elimino el caracter de la cadena y la diferencia entre las longitudes // Es las veces que aparece // mañana (6) mñn (3) 6-3=3 veces aparece 'a' // Ojo porque como Java es tipado tenemos que hacer conversiones de tipo // Strng.valueOf(char) Nos convierte un char en cadena return cadena.length() - cadena.replace(String.valueOf(caracter), "").length(); } /* * Escribir una función que elimine los espacios en blanco al principio y al * final de una cadena dada, y que si hay espacios dobles en el interior los * cambie por un solo espacio. sinEspacios(" hola que tal ")–>"hola que tal" */ static String sinEspacios(String cadena) { // Elimino espacios de inicio y fin cadena = cadena.trim(); // Reemplazo dos espacios por uno cadena = cadena.replace(" ", " "); return cadena; } static String sinEspaciosMejor(String cadena) { cadena = cadena.trim(); // Mientras tenga dos espacios consecutivos while (cadena.indexOf(" ") != -1) { // Los reduzco a uno cadena = cadena.replace(" ", " "); } // Al salir del bucle no puedo tener dos espacios consecutivos, hemos reducido // Cualquier cadena de espacios a uno solo return cadena; } /* * Escribir una función a la que le pasamos dos cadenas y nos devuelva la más corta. */ static String masCorta(String cad1, String cad2) { if (cad1.length()>cad2.length()) { return cad1; } return cad2; } }