From 905014d150bbfcf05406b0bc0a7071d8cd402800 Mon Sep 17 00:00:00 2001 From: h4ckx0r Date: Tue, 21 Jan 2025 20:57:51 +0100 Subject: [PATCH] Ejercicios Capitulo 7 bloque 3 --- .../bloque03/ejercicio01/PeticionNumeros.java | 27 ++++++++++ .../ejercicio01/exeptions/OddException.java | 7 +++ src/capitulo07/bloque03/ejercicio02/Main.java | 50 +++++++++++++++++++ ...ringContienePalabraProhibidaException.java | 7 +++ .../exceptions/StringEnBlancoException.java | 7 +++ .../StringMenosTresPalabrasException.java | 7 +++ .../StringSinPalabraRequeridaException.java | 7 +++ 7 files changed, 112 insertions(+) create mode 100644 src/capitulo07/bloque03/ejercicio01/PeticionNumeros.java create mode 100644 src/capitulo07/bloque03/ejercicio01/exeptions/OddException.java create mode 100644 src/capitulo07/bloque03/ejercicio02/Main.java create mode 100644 src/capitulo07/bloque03/ejercicio02/exceptions/StringContienePalabraProhibidaException.java create mode 100644 src/capitulo07/bloque03/ejercicio02/exceptions/StringEnBlancoException.java create mode 100644 src/capitulo07/bloque03/ejercicio02/exceptions/StringMenosTresPalabrasException.java create mode 100644 src/capitulo07/bloque03/ejercicio02/exceptions/StringSinPalabraRequeridaException.java diff --git a/src/capitulo07/bloque03/ejercicio01/PeticionNumeros.java b/src/capitulo07/bloque03/ejercicio01/PeticionNumeros.java new file mode 100644 index 0000000..dcb6776 --- /dev/null +++ b/src/capitulo07/bloque03/ejercicio01/PeticionNumeros.java @@ -0,0 +1,27 @@ +package capitulo07.bloque03.ejercicio01; + +import capitulo07.bloque03.ejercicio01.exeptions.OddException; + +import java.util.Scanner; + +public class PeticionNumeros { + static Scanner sc = new Scanner(System.in); + public static int pideNumeroPar() throws OddException { + System.out.print("Escriba un número par: "); + int num = sc.nextInt(); + if (num % 2 != 0) throw new OddException("El número dado es impar."); + return num; + } + + public static void main(String[] args) { + int num = 0; + do { + try { + num = pideNumeroPar(); + } catch (OddException e) { + System.err.println("El número dado es impar por lo que ha provocado la siguiente Exception: "); + e.printStackTrace(); + } + } while (num != 0); + } +} diff --git a/src/capitulo07/bloque03/ejercicio01/exeptions/OddException.java b/src/capitulo07/bloque03/ejercicio01/exeptions/OddException.java new file mode 100644 index 0000000..c62ee9a --- /dev/null +++ b/src/capitulo07/bloque03/ejercicio01/exeptions/OddException.java @@ -0,0 +1,7 @@ +package capitulo07.bloque03.ejercicio01.exeptions; + +public class OddException extends Exception{ + public OddException(String message) { + super(message); + } +} diff --git a/src/capitulo07/bloque03/ejercicio02/Main.java b/src/capitulo07/bloque03/ejercicio02/Main.java new file mode 100644 index 0000000..34ce5fe --- /dev/null +++ b/src/capitulo07/bloque03/ejercicio02/Main.java @@ -0,0 +1,50 @@ +package capitulo07.bloque03.ejercicio02; + +import capitulo07.bloque03.ejercicio02.exceptions.StringContienePalabraProhibidaException; +import capitulo07.bloque03.ejercicio02.exceptions.StringEnBlancoException; +import capitulo07.bloque03.ejercicio02.exceptions.StringMenosTresPalabrasException; +import capitulo07.bloque03.ejercicio02.exceptions.StringSinPalabraRequeridaException; + +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + +public class Main { + + static Scanner sc = new Scanner(System.in); + + public static String pedirFraseConPalabra(String palabra) throws StringEnBlancoException, StringMenosTresPalabrasException, StringSinPalabraRequeridaException, StringContienePalabraProhibidaException { + String textoIntroducido; + String[] palabrasProhibidas = new String[]{"tonto", "tonta", "idiota"}; + + System.out.print("Introduzca una frase con la palabra " + palabra + ": "); + textoIntroducido = sc.nextLine(); + if (textoIntroducido.isBlank()) + throw new StringEnBlancoException("La cadena de texto está vacía o sólo tiene espacios en Blanco"); + + int conteoEspacios = 0; + for (char c : textoIntroducido.trim().toCharArray()) { + if (c == ' ') conteoEspacios++; + } + if (conteoEspacios <= 1) + throw new StringMenosTresPalabrasException("La cadena de texto tiene menos de 3 palabras"); + + if (!textoIntroducido.toLowerCase().contains(palabra)) + throw new StringSinPalabraRequeridaException("La cadena de texto no contiene la palabra requerida"); + + for (String str : palabrasProhibidas) { + if (textoIntroducido.toLowerCase().contains(str)) + throw new StringContienePalabraProhibidaException("La cadena de texto contiene una palabra prohibida"); + } + + return textoIntroducido; + } + + public static void main(String[] args) { + try { + String stringIntroducido = pedirFraseConPalabra("bombilla"); + } catch (StringEnBlancoException | StringMenosTresPalabrasException | StringSinPalabraRequeridaException | StringContienePalabraProhibidaException e) { + System.err.println(e.getMessage()); + } + } +} diff --git a/src/capitulo07/bloque03/ejercicio02/exceptions/StringContienePalabraProhibidaException.java b/src/capitulo07/bloque03/ejercicio02/exceptions/StringContienePalabraProhibidaException.java new file mode 100644 index 0000000..fd762ff --- /dev/null +++ b/src/capitulo07/bloque03/ejercicio02/exceptions/StringContienePalabraProhibidaException.java @@ -0,0 +1,7 @@ +package capitulo07.bloque03.ejercicio02.exceptions; + +public class StringContienePalabraProhibidaException extends RuntimeException { + public StringContienePalabraProhibidaException(String message) { + super(message); + } +} diff --git a/src/capitulo07/bloque03/ejercicio02/exceptions/StringEnBlancoException.java b/src/capitulo07/bloque03/ejercicio02/exceptions/StringEnBlancoException.java new file mode 100644 index 0000000..e3fb592 --- /dev/null +++ b/src/capitulo07/bloque03/ejercicio02/exceptions/StringEnBlancoException.java @@ -0,0 +1,7 @@ +package capitulo07.bloque03.ejercicio02.exceptions; + +public class StringEnBlancoException extends Exception { + public StringEnBlancoException(String message) { + super(message); + } +} diff --git a/src/capitulo07/bloque03/ejercicio02/exceptions/StringMenosTresPalabrasException.java b/src/capitulo07/bloque03/ejercicio02/exceptions/StringMenosTresPalabrasException.java new file mode 100644 index 0000000..74dfe7e --- /dev/null +++ b/src/capitulo07/bloque03/ejercicio02/exceptions/StringMenosTresPalabrasException.java @@ -0,0 +1,7 @@ +package capitulo07.bloque03.ejercicio02.exceptions; + +public class StringMenosTresPalabrasException extends RuntimeException { + public StringMenosTresPalabrasException(String message) { + super(message); + } +} diff --git a/src/capitulo07/bloque03/ejercicio02/exceptions/StringSinPalabraRequeridaException.java b/src/capitulo07/bloque03/ejercicio02/exceptions/StringSinPalabraRequeridaException.java new file mode 100644 index 0000000..182fb49 --- /dev/null +++ b/src/capitulo07/bloque03/ejercicio02/exceptions/StringSinPalabraRequeridaException.java @@ -0,0 +1,7 @@ +package capitulo07.bloque03.ejercicio02.exceptions; + +public class StringSinPalabraRequeridaException extends RuntimeException { + public StringSinPalabraRequeridaException(String message) { + super(message); + } +}