Hola. Dejo el Ejercicio CU0060B del tutorial pdf de programación Java desde cero.
Conversión de tipos de datos en java (tipado). Ejemplos. Método valueOf. Error inconvertible types
EJERCICIO
El API de Java proporciona herramientas para pedir datos al usuario a través de ventanas. Un ejemplo de ello es el uso de la clase JOptionPane perteneciente al paquete javax.swing.JOptionPane del API Java. El método showInputDialog permite pedir un dato al usuario y almacena su respuesta en un objeto de tipo String. Queremos crear un programa que pida al usuario un número y muestre por pantalla el doble de ese número. Para ello hemos creado este código:
import javax.swing.JOptionPane;
public class ejemplo1 {
public static void main (String[] Args) {
String entradaUsuario = JOptionPane.showInputDialog ( "Introduzca un número:" );
System.out.println ("El doble del número introducido es: " + 2*entradaUsuario);
}
}
El problema que tenemos es que nos salta un mensaje de error “operator * cannot be applied to int, java.lang.String”. ¿Qué interpretación haces de este mensaje de error? ¿Cómo se puede corregir el código para que a través de una conversión de tipos se ejecute el programa? Puedes comprobar si tu código y respuestas son correctas consultando en los foros aprenderaprogramar.com.
¿Qué interpretación haces de este mensaje de error? En esta linea:
System.out.println ("El doble del número introducido es: " + 2*entradaUsuario);
Se intenta multiplicar un entero por un string cosa que no se puede hacer sin convertir la cadena a numero entero.
¿Cómo se puede corregir el código para que a través de una conversión de tipos se ejecute el programa? Convirtiendo la cadena entradaUsuario a entero.
Por ejemplo : Integer ent=Integer.valueOf(entradaUsuario);
System.out.println ("El doble del número introducido es: " + 2*ent);
El código quedaría así:
import javax.swing.JOptionPane;
public class ejemplo1 {
public static void main (String[] Args) {
String entradaUsuario = JOptionPane.showInputDialog ( "Introduzca un número:" );
Integer ent=Integer.valueOf(entradaUsuario);
System.out.println ("El doble del número introducido es: " + 2*ent);
}
}
Gracias.