Solución ejercicios cadenas

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

Publicado por

Avatar del usuario

Juan Pablo Fuentes

Formador de programación y bases de datos