elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Comprobar si una variable es numérica
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Comprobar si una variable es numérica  (Leído 3,454 veces)
JonaLamper


Desconectado Desconectado

Mensajes: 394



Ver Perfil
Comprobar si una variable es numérica
« en: 3 Enero 2015, 16:43 pm »

Hola,

Tengo un bucle do while del estilo (en pseudocódigo):


do {
   System.out.print("Introduzca la columna: ");
   Recojo la columna introducida en una variable llamada recoger



   Por aquí abajo habrá algo en plan System.out.print("Debe introducir solo números enteros.")

} while (recoger == cualquier cosa que no sea un número);

Así que como veis, necesito entrar en un do while y hasta que el usuario no introduzca un número, no puede salir. Mi duda viene en que no sé cómo decir en el while 'Si recoger es cualquier cosa que no sea un número', o sea, ¿cómo podría hacer esa comparación?


En línea

Utilizar palabras para hablar de palabras es como utilizar un lápiz para hacer un dibujo de ese lápiz sobre el mismo lápiz.
Flamer


Desconectado Desconectado

Mensajes: 1.052


crack, crack y mas crack...


Ver Perfil WWW
Re: Comprobar si una variable es numérica
« Respuesta #1 en: 3 Enero 2015, 17:14 pm »

aver si entendi no saldras del bucle hasta que el usuario inserte un dato numerico y no sabes lo que usuario inserta bueno..

Declara la variable como numerica y cuando inserte algo que nosea numeros marcara error

saludos Flamer


En línea

Mi Canal De Youtube y Blog

https://elblogdeflamer.blogspot.com

JonaLamper


Desconectado Desconectado

Mensajes: 394



Ver Perfil
Re: Comprobar si una variable es numérica
« Respuesta #2 en: 3 Enero 2015, 17:51 pm »

¿Podrías poner un ejemplo?
En línea

Utilizar palabras para hablar de palabras es como utilizar un lápiz para hacer un dibujo de ese lápiz sobre el mismo lápiz.
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Comprobar si una variable es numérica
« Respuesta #3 en: 5 Enero 2015, 15:19 pm »

Así?

Código
  1. import java.util.Scanner;
  2.  
  3. public class JonaLamper{
  4.  
  5.    public JonaLamper() {
  6.        /* Constructor */
  7.  
  8.        Integer respuesta = this.preguntarColumna();
  9.        // ...
  10.  
  11.    }
  12.  
  13.    public Integer preguntarColumna(){
  14.        Scanner sc = new Scanner(System.in);
  15.        String recoger;
  16.        System.out.print("Introduzca la columna: ");
  17.        recoger = sc.nextLine().trim();
  18.  
  19.        if(recoger.matches("-?\\d+(\\.\\d+)?")){
  20.            try {
  21.                return Integer.parseInt(recoger);
  22.  
  23.            }catch(Exception e){
  24.                System.out.print("Debe introducir solo números enteros.");
  25.                return this.preguntarColumna();
  26.            }
  27.        }else{
  28.            System.out.print("Debe introducir solo números enteros.");
  29.            return this.preguntarColumna();
  30.        }
  31.    }
  32. }
  33.  

Ahora, si yo fuera tu dentro de la misma función de preguntar columna verificaría antes de retornar el integer que si realmente el id de columna existe, así no tienes que estar controlando la integridad de datos cada ves que lo uses y si no existe debería decir que debe introducir un número de columna válido.
« Última modificación: 5 Enero 2015, 15:24 pm por WHK » En línea

JonaLamper


Desconectado Desconectado

Mensajes: 394



Ver Perfil
Re: Comprobar si una variable es numérica
« Respuesta #4 en: 5 Enero 2015, 23:12 pm »

He intentado arreglarlo pero nada. Creo que será más fácil si ves lo que tengo:

Código
  1. } else if(comando.equalsIgnoreCase("PONER")) {
  2.  
  3. do {
  4. try{
  5. System.out.print("Introduzca la columna: ");
  6. c = this.in.nextInt();
  7. this.in.nextLine();
  8. continuar = false;
  9.  
  10. } catch(InputMismatchException intInputMismatchException){
  11. System.err.printf("\n Error: %s\n", intInputMismatchException);
  12. System.out.println("Se deben introducir solo numeros enteros");
  13. System.out.println();
  14. this.in.next();
  15.  
  16. }
  17. //Esto hay que cambiarlo!!
  18. } while (continuar == true);

Y al ejecutarlo, dentro del programa, el resultado es este:





Lo he arreglado, pero me salta por pantalla el mensaje de java.util.InputMismatchException. Igualmente, hasta la siguiente práctica no era necesario controlar las excepciones, así que si no quieres comerte mucho la cabeza tampoco pasa nada, lo puedo dejar así.

Saludos.

PD: el controlar que la columna introducida esté dentro del rango posible se hace más abajo, cuando se crea un objeto y se procede a insertar la ficha en la respectiva columna  ;D
« Última modificación: 5 Enero 2015, 23:21 pm por JonaLamper » En línea

Utilizar palabras para hablar de palabras es como utilizar un lápiz para hacer un dibujo de ese lápiz sobre el mismo lápiz.
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Comprobar si una variable es numérica
« Respuesta #5 en: 8 Enero 2015, 04:03 am »

Prueba con    
System.err.printf("\n Error: %s\n", intInputMismatchException.getMessage());
En línea

JonaLamper


Desconectado Desconectado

Mensajes: 394



Ver Perfil
Re: Comprobar si una variable es numérica
« Respuesta #6 en: 8 Enero 2015, 21:38 pm »

Ahora solo aparece la palabra null.

Lo voy a dejar así, muchas gracias.
En línea

Utilizar palabras para hablar de palabras es como utilizar un lápiz para hacer un dibujo de ese lápiz sobre el mismo lápiz.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines