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;
}
}