Ahí van mis respuestas al ejercicio.
salta un mensaje de error “operator * cannot be applied to int, java.lang.String”
a ¿Qué interpretación haces de este mensaje de error?
Respuesta Al querer multiplicar un entero 2 * String (entradaUsuario) salta error por incompatibilidad de tipos.
b ¿Cómo se puede corregir el código para que a través de una conversión de tipos se ejecute el programa?
Respuesta
Con valueOf. Transformo el String en un Integer, y opero con el pues Java creo se explicó que transformaba un objeto Integer a un int primitivo por si solo (en el cálculo, lo añado porque en el siguiente capitulo se ve la importancia de pasar bien tipos primitivos o Objetos) , sino habria que volver a transformar el Integer a int con un,
int nuevoNumero = (int)ObjetoInteger;
import javax.swing.JOptionPane;
public class Ejemplo1{
public static void main (String [] args){
Integer numero = 0;
String entradaUsuario = JOptionPane.showInputDialog("Introduzca un número:");
numero = numero.valueOf(entradaUsuario);
System.out.println("El doble del numero introducido es : " + 2 * numero);
} //cierre main
}// cierre clase
con parseInt
import javax.swing.JOptionPane;
public class Ejemplo1{
public static void main (String [] args){
int numero;
String entradaUsuario = JOptionPane.showInputDialog("Introduzca un número:");
numero = Integer.parseInt(entradaUsuario);
System.out.println("El doble del numero introducido es : " + 2 * numero);
} //cierre main
}// cierre clase
Hay alguna diferencia? me da la sensación que con parseInt ya convierte String --> Integer ---> int. la doble conversión y valueOf necesitaria hacerla de nuevo con el Integer.