diff --git a/.idea/modules.xml b/.idea/modules.xml index 1beec8a..4aeef7d 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,7 +2,7 @@ - + \ No newline at end of file diff --git a/Ejercicios Caps01_02_03.iml b/Ejercicios.iml similarity index 100% rename from Ejercicios Caps01_02_03.iml rename to Ejercicios.iml diff --git a/src/capitulo04/bloque05/Ejercicio01.java b/src/capitulo04/bloque05/Ejercicio01.java new file mode 100644 index 0000000..ec13e02 --- /dev/null +++ b/src/capitulo04/bloque05/Ejercicio01.java @@ -0,0 +1,19 @@ +package capitulo04.bloque05; + +import static capitulo04.utils.Utils.solicitarStringScanner; + +public class Ejercicio01 { + public static void main(String[] args) { + System.out.println(eliminarEspacios(solicitarStringScanner("Introduzca el texto del que eliminar los espacios"))); + } + + public static String eliminarEspacios(String texto) { + String textoSinEspacios = ""; + for (int i = 0; i < texto.length(); i++) { + if (texto.charAt(i) != ' ') { + textoSinEspacios += texto.charAt(i); + } + } + return textoSinEspacios; + } +} diff --git a/src/capitulo04/bloque05/Ejercicio02.java b/src/capitulo04/bloque05/Ejercicio02.java new file mode 100644 index 0000000..d80665a --- /dev/null +++ b/src/capitulo04/bloque05/Ejercicio02.java @@ -0,0 +1,29 @@ +package capitulo04.bloque05; + +import static capitulo04.utils.Utils.*; + +public class Ejercicio02 { + public static void main(String[] args) { + System.out.println("== Cifrador César =="); + String frase = solicitarStringScanner("Introduzca la frase a cifrar:"); + int clave = solicitarIntScanner("Introduzca la clave o número de movimientos: "); + + System.out.println("Texto cifrado: "); + System.out.println(cifrarCesar(frase, clave)); + } + + public static String cifrarCesar(String textoACifrar, int posicionesAMover) { + posicionesAMover = posicionesAMover >= 32 ? posicionesAMover / 32 : posicionesAMover; + textoACifrar = cambiarAMinuscula(textoACifrar); + + String textoCifrado = ""; + for (int i = 0; i < textoACifrar.length(); i++) { + if (textoACifrar.charAt(i) + posicionesAMover > 122) { + textoCifrado += (char) (textoACifrar.charAt(i) + (posicionesAMover - 26)); + } else { + textoCifrado += (char) (textoACifrar.charAt(i) + posicionesAMover); + } + } + return textoCifrado; + } +} diff --git a/src/capitulo04/bloque05/Ejercicio03.java b/src/capitulo04/bloque05/Ejercicio03.java new file mode 100644 index 0000000..1798f72 --- /dev/null +++ b/src/capitulo04/bloque05/Ejercicio03.java @@ -0,0 +1,24 @@ +package capitulo04.bloque05; + +import static capitulo04.utils.Utils.solicitarStringScanner; + +public class Ejercicio03 { + public static void main(String[] args) { + String frase = solicitarStringScanner("Introduzca la frase en la que desea buscar la subfrase"), + subfrase = solicitarStringScanner("Introduzca la substring a buscar"); + + int contadorSubStrings = 0; + for (int i = 0; i < frase.length(); i++) { + for (int j = 0, clonI = i; j < subfrase.length(); j++, clonI++) { + if (frase.charAt(clonI) != subfrase.charAt(j)) { + break; + } else if (j == subfrase.length() -1) { + contadorSubStrings++; + } + } + } + + System.out.println("La frase: " + frase + "\nContiene " + contadorSubStrings + " veces la substring " + subfrase); + + } +} diff --git a/src/capitulo04/bloque05/Ejercicio04.java b/src/capitulo04/bloque05/Ejercicio04.java new file mode 100644 index 0000000..d983e5e --- /dev/null +++ b/src/capitulo04/bloque05/Ejercicio04.java @@ -0,0 +1,31 @@ +package capitulo04.bloque05; + +import static capitulo04.utils.Utils.solicitarStringScanner; + +public class Ejercicio04 { + public static void main(String[] args) { + String stringABuscar = solicitarStringScanner("Introduzca la oración en la que desea buscar la palabra más larga"); + + String palabraMasLarga = "", palabraTemporal = ""; + + for (int i = 0; i <= stringABuscar.length(); i++) { + char caracterActual; + if (i < stringABuscar.length()) { + caracterActual = stringABuscar.charAt(i); + } else { + caracterActual = ' '; + } + + if (caracterActual != ' ') { + palabraTemporal += caracterActual; + } else { + if (palabraTemporal.length() > palabraMasLarga.length()) { + palabraMasLarga = palabraTemporal; + } + palabraTemporal = ""; + } + } + + System.out.println("La palabra más larga es: " + palabraMasLarga); + } +} diff --git a/src/capitulo04/bloque05/Ejercicio05.java b/src/capitulo04/bloque05/Ejercicio05.java new file mode 100644 index 0000000..503a6fd --- /dev/null +++ b/src/capitulo04/bloque05/Ejercicio05.java @@ -0,0 +1,36 @@ +package capitulo04.bloque05; + +import static capitulo04.utils.Utils.solicitarStringScanner; + +public class Ejercicio05 { + public static void main(String[] args) { + String stringAInvertir = solicitarStringScanner("Introduzca una oración para invertir las letras de sus palabras"); + System.out.println("Cadena invertida: " + invertirPalabras(stringAInvertir)); + } + + public static String invertirPalabras(String textoAInvertir) { + String resultado = ""; + String palabraActual = ""; + for (int i = 0; i <= textoAInvertir.length(); i++) { + + char caracterActual; + if (i < textoAInvertir.length()) { + caracterActual = textoAInvertir.charAt(i); + } else { + caracterActual = ' '; + } + + if (caracterActual != ' ') { + palabraActual += caracterActual; + } else { + for (int j = (palabraActual.length() - 1); j >= 0; j--) { + resultado += palabraActual.charAt(j); + } + resultado += ' '; + palabraActual = ""; + } + } + + return resultado; + } +} diff --git a/src/capitulo04/bloque05/Ejercicio06.java b/src/capitulo04/bloque05/Ejercicio06.java new file mode 100644 index 0000000..43012c9 --- /dev/null +++ b/src/capitulo04/bloque05/Ejercicio06.java @@ -0,0 +1,45 @@ +package capitulo04.bloque05; + +import static capitulo04.utils.Utils.solicitarStringScanner; + +public class Ejercicio06 { + public static void main(String[] args) { + String palabraIntroducida = solicitarStringScanner("Introduzca una palabra para comprobar si es un pangrama"); + boolean letraA = false, + letraE = false, + letraI = false, + letraO = false, + letraU = false; + + palabraIntroducida = cambiarAMinuscula(palabraIntroducida); + for (int i = 0; i < palabraIntroducida.length(); i++) { + if (palabraIntroducida.charAt(i) == 'a') { + letraA = true; + } else if (palabraIntroducida.charAt(i) == 'e') { + letraE = true; + } else if (palabraIntroducida.charAt(i) == 'i') { + letraI = true; + } else if (palabraIntroducida.charAt(i) == 'o') { + letraO = true; + } else if (palabraIntroducida.charAt(i) == 'u') { + letraU = true; + } + } + if (letraA && letraE && letraI && letraO && letraU) { + System.out.println("Sí es un pangrama"); + } else { + System.out.println("No es un pangrama"); + } + } + public static String cambiarAMinuscula(String textoACambiar) { + String minuscula = ""; + for (int i = 0; i < textoACambiar.length(); i++) { + if (textoACambiar.charAt(i) >= 65 && textoACambiar.charAt(i) <= 90) { + minuscula += (char) (textoACambiar.charAt(i) + 32); + } else { + minuscula += textoACambiar.charAt(i); + } + } + return minuscula; + } +} diff --git a/src/capitulo04/utils/Utils.java b/src/capitulo04/utils/Utils.java index 1cdaf6e..3477806 100644 --- a/src/capitulo04/utils/Utils.java +++ b/src/capitulo04/utils/Utils.java @@ -29,4 +29,15 @@ public class Utils { } return nums; } + public static String cambiarAMinuscula(String textoACambiar) { + String minuscula = ""; + for (int i = 0; i < textoACambiar.length(); i++) { + if (textoACambiar.charAt(i) >= 65 && textoACambiar.charAt(i) <= 90) { + minuscula += (char) (textoACambiar.charAt(i) + 32); + } else { + minuscula += textoACambiar.charAt(i); + } + } + return minuscula; + } }