Autor Tema: comprobar si un String es un número con java  (Leído 43732 veces)

Choripan

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 20
    • Ver Perfil
comprobar si un String es un número con java
« en: 07 de Abril 2014, 18:15 »
Hola,  necesito ayuda resolviendo el siguiente problema.

Imaginen que tengo el siguiente codigo en mi programa, con variables double.
Código: [Seleccionar]
numeroUno = JOptionPane.showInputDialog ( "Asignele un valor numerico a A:" );
a1 = Integer.parseInt( numeroUno );
El programa funciona de matavilla, se pude introducir el valor de A sin ningun problema, el programa funciona como yo quiero que lo haga, pero ahora... si yo introduzco un valor alfanumerico o un signo que NO sea un numero, o simplemente no introduzco ningun valor, el programa se cierra, mi duda es la siguiente:
*Como puedo hacer que el programa reconozca que el valor que se introdujo no era el adecuado,m y al hacer esto salga un aviso que diga "El valor que usted introdujo era incorrecto, intentelo de nuevo" y el programa no se cierre, si no regrese a la ventana en donde se introduce el valor de A.
Espero haberme explicado lo suficientemente bien. Gracias.
« Última modificación: 07 de Abril 2014, 21:03 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:comprobar si un String es un número con java
« Respuesta #1 en: 07 de Abril 2014, 21:07 »
Tal y como lo planteas, JOptionPane.showInputDialog te proporciona una cadena de texto (String). Por tanto el tipo de variable que es se conoce (es String).

Entonces lo que te estás preguntando es si un String contiene un número o no (se supone que para saber si puedes convertirlo a un formato numérico como entero o decimal). Esto parece una pregunta sencilla pero no lo es tanto. De hecho hay muchas formas de resolverlo. La forma que encuentro quizás más limpia es usar expresiones regulares. En concreto este método te dice si un String contiene un número:

    public static boolean isNumeric(String str) {
        return (str.matches("[+-]?\\d*(\\.\\d+)?") && str.equals("")==false);
    }

Aquí un ejemplo de cómo sería con código ejecutable:

Código: [Seleccionar]
import javax.swing.JOptionPane;

public class comprobarSiEsNumero {

    public static void main (String[] Args) {
        String entradaUsuario = "";
        while (isNumeric(entradaUsuario)==false){
            entradaUsuario = JOptionPane.showInputDialog ( "Asignele un valor numerico a A (usar . como separador decimal):" );

            if (isNumeric(entradaUsuario) == true) {
                System.out.println ("Entrada OK, introdujo el número " + entradaUsuario); }
            else {
                System.out.println ("Entrada no válida, no introdujo un número"); }
        }
    }

    public static boolean isNumeric(String str) {
        return (str.matches("[+-]?\\d*(\\.\\d+)?") && str.equals("")==false);
    }

}

Choripan

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 20
    • Ver Perfil
Re:comprobar si un String es un número con java
« Respuesta #2 en: 07 de Abril 2014, 23:40 »
Muchas Gracias Alex, tu informacion me va de maravilla. Tratare ahora de entenderla lo mejor que puedo y tratar de usarla lo mejor que pueda. GRACIAS

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

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".