Autor Tema: Java error perator * cannot be applied to int, java.lang.String CU00670B  (Leído 369 veces)

paramonso

  • Intermedio
  • ***
  • Mensajes: 242
  • El ignorante afirma, el sabio duda y reflexiona.
    • Ver Perfil
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

Citar
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í:

Código: [Seleccionar]
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.
 ;)
« última modificación: 24 de Febrero 2019, 18:20 de Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2483
    • Ver Perfil
Buenas, todo correcto. Salu2

 

Esto es un laboratorio de ideas...
Aprender a programar

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".