Foros del Web » Programación para mayores de 30 ;) » Java »

Introducción de datos en java. Ayuda!

Estas en el tema de Introducción de datos en java. Ayuda! en el foro de Java en Foros del Web. hola necesito ayuda. Estoy creando una aplicación en la que se piden datos de entrada, y necesito comprobar que el usuario introduce datos correctos. ¿Cómo ...
  #1 (permalink)  
Antiguo 07/05/2010, 03:43
 
Fecha de Ingreso: marzo-2009
Mensajes: 79
Antigüedad: 15 años, 1 mes
Puntos: 0
Introducción de datos en java. Ayuda!

hola necesito ayuda. Estoy creando una aplicación en la que se piden datos de entrada, y necesito comprobar que el usuario introduce datos correctos.

¿Cómo hago para comprobar que el usuario solo introduce números (no letras)?

¿Cómo hago para comprobar que el usuario introduce datos (una palabra) y no deja la variable vacía?

Estoy un poco perdida ya que yo sabría hacerlo en C pero en java he estado probando de todo y no me funciona... no sé qué estaré haciendo mal..

Saludos, gracias.
  #2 (permalink)  
Antiguo 07/05/2010, 08:38
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Introducción de datos en java. Ayuda!

¿Cómo introduce el usuario los datos? ¿En una ventana con cajas de texto o por línea de comandos? ¿Puedes poner lo que has intentando para ver por qué no funciona?

Se buena.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 08/05/2010, 06:24
 
Fecha de Ingreso: marzo-2009
Mensajes: 79
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Introducción de datos en java. Ayuda!

Cita:
Iniciado por chuidiang Ver Mensaje
¿Cómo introduce el usuario los datos? ¿En una ventana con cajas de texto o por línea de comandos? ¿Puedes poner lo que has intentando para ver por qué no funciona?

Se buena.

Esto es lo que queria preguntar...

do{
System.out.println (" Escribe la cita: ");
cita = linea.readLine();
}while(cita=="");


quiero que el usuario introduzca la cita, y compruebo que introduzca algo, si no introduce nada (da a intro sin mas) vuelve a pedir la cita.

He probado poniendo tambien: }while(cita==null);
Pero no lo repite. No tengo mucha idea de java asique nose como puedo ponerlo...??
  #4 (permalink)  
Antiguo 08/05/2010, 06:26
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Introducción de datos en java. Ayuda!

¿De qué tipo es "linea"?
Prueba a comparar con equals() .... while (cita.equals(""))

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 08/05/2010, 08:53
 
Fecha de Ingreso: marzo-2009
Mensajes: 79
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Introducción de datos en java. Ayuda!

Cita:
Iniciado por chuidiang Ver Mensaje
¿De qué tipo es "linea"?
Prueba a comparar con equals() .... while (cita.equals(""))

Se bueno.

Muchas gracias, ya esta solucionado, no conocia la funcion equals.

Mi otra pregunta esra la siguiente:

do{
System.out.println (" Elige la categoría: ");
System.out.println (" 0.- Adjetivo.");
System.out.println (" 1.- Adverbio.");
System.out.println (" 2.- Articulo.");
System.out.println (" 3.- Conjuncion.");
System.out.println (" 4.- Determinante.");
System.out.println (" 5.- Numeral.");
System.out.println (" 6.- Preposicion.");
System.out.println (" 7.- Pronombre.");
System.out.println (" 8.- Sustantivo.");
System.out.println (" 9.- Verbo.");
cat=Integer.parseInt(linea.readLine());
switch(cat)
{
case 0:
p.ponerCat("adj");
break;
case 1:
p.ponerCat("adv");
break;
case 2:
p.ponerCat("art");
break;
...

}
}while((cat<0)||(cat>9));


aqui quiero que el usuario introduzca un numero del 0 al 9, y que si introduce cualquier otro numero o una letra, que vuelva a preguntar. Lo de los numeros ya esta hecho, mi problema es que nose como hacer para que vuelva a repetir cuando introduce otra cosa q no sea un numero, como una letra o una palabra.

Muchas gracias.
  #6 (permalink)  
Antiguo 08/05/2010, 11:04
 
Fecha de Ingreso: marzo-2008
Mensajes: 39
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Introducción de datos en java. Ayuda!

Probemos con una expresión regular que nos valide números y que verifique introdujo algo

Código java:
Ver original
  1. boolean continuar = true;
  2.         String cita = "";
  3.         do {
  4.             System.out.println(" Escribe la cita: ");
  5.             cita = linea.readLine();
  6.             if (cita.matches("[0-9]{1,1}")) {
  7.                  continuar = false;
  8.             } else {
  9.                 System.out.println("Mensaje de error");
  10.             }
  11.  
  12.         } while (continuar);

matches asegura que el texto solo contenga la expresion regular dada, en este caso un rango de numeros del 0 al 9 que minimo aparezca una vez y limite de 1 porque solo requieres un numero, si requieres mas solo dejas {1,} una vez aprobado ponemos en false la variable continuar para que se detenga el ciclo.

pruebala y nos comentas

saludos, pepe
  #7 (permalink)  
Antiguo 08/05/2010, 14:17
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Introducción de datos en java. Ayuda!

La expresión regular es perfectamente válida, sin embargo, se puede simplificar un poco.

Es más fácil la expresión regular "\\d", que es equivalente a la que has puesto, pero abreviada. De hecho, \\d existe para evitar escribir [0-9].

El {1,1} sobra, ya que [0-9] o \\d equivalen a un único caracter de 0 a 9. Incluso para el caso de un número fijo, basta con poner {n} una sola vez.

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:51.