Java - Practica de POO

 
Vista:
sin imagen de perfil
Val: 21
Ha disminuido su posición en 46 puestos en Java (en relación al último mes)
Gráfica de Java

Practica de POO

Publicado por Sara Ugalde (1 intervención) el 07/06/2020 02:59:41
Hola en la practica que me dejaron de POO hay dos preguntas en las que no tengo ni idea de como hacerlo y quería pedir su ayuda.

6. Escribe un método auxiliar de nombre “caracterEn” en Java que realice la siguiente acción: Recibe como parámetros una cadena (String) y un entero (int); Si el entero está entre 0 y la longitud de la cadena (puedes hacer uso del método “length(): int” de la clase “String”) devuelve el carácter en la posición correspondiente (puedes hacer uso del método “charAt(int)” de la clase “String”); En caso contrario, construye y lanza una excepción de tipo “Exception”.

7. Construye un programa “main” en Java que realice las siguientes acciones: - Crea un objeto de la clase “Scanner” y lo asocia con la entrada estándar (la consola de MSDOS); - Lee un objeto de tipo “String” de la misma en un objeto “lect_teclado”; - Invoca al método “caracterEn” definido en el ejercicio anterior, con la “String” leída de la entrada estándar y el entero “7”, mostrándolo por pantalla; - Captura la posible excepción, mostrando por pantalla un mensaje: “Has intentado recuperar una posición de la cadena de caracteres que no existe;”.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Practica de POO

Publicado por Kabuto (1381 intervenciones) el 07/06/2020 12:08:07
Es más sencillo de lo que parece.

El método ha de recibir una cadena String y una posición representa por un valor int.
Y ha de retornar el carácter que se encuentre en esa posición dentro de la cadena.
Esto lo hacemos con método charAt(int posicion) que automáticamente devuelve el carácter en esa posición.

¿Pero que pasa si la posición que nos han dado está fuera de los límites de la cadena?
En ese caso, el método charAt() genera una excepción llamada IndexOutOfBoundsException que podemos capturar con try catch, así el programa no se rompe de forma abrupta y podemos avisar al usuario de que esa posición no es válida.

Pero, si queremos, podemos incluso generar nuestra propia excepción, con el mensaje informativo que nosotros creamos más pertinente.

Para ello, al declarar el método que nos piden, lo declaramos como método que "lanza una excepción" (throws Exception)
Y dentro de su código, establecemos que condiciones se han de dar para que se lance o no esta excepción.

El código podría quedar así. Asegúrate de que entiendes cada línea y qué es lo que está ocurriendo, pregunta lo que haga falta, no te conformes con copiar la solución.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class Ej6y7 {
 
	public static void main(String[] args) {
 
		Scanner teclado = new Scanner(System.in);
 
		System.out.print("Cadena: ");
		String lect_teclado = teclado.nextLine();
		teclado.close();
 
		try {
			System.out.println("\nCarácter encontrado: " + caracterEn(lect_teclado, 7));
		}
		catch(Exception e) {
			System.out.println(e.getMessage());
		}
 
	}
 
	public static char caracterEn(String cadena, int pos) throws Exception {
 
		if (pos < 0 || pos >= cadena.length())
			throw new Exception("Has intentado recuperar una posición de la cadena de caracteres que no existe");
		else
			return cadena.charAt(pos);
	}
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar