Retroceder   Foros del Web > Programación para sitios web > Java y JSP

Respuesta
 
Herramientas Desplegado
Antiguo 06-may-2006, 16:22   #1 (permalink)
Estef ha deshabilitado el karma
 
Avatar de Estef
 
Fecha de Ingreso: febrero-2006
Mensajes: 12
StringTokenizer para validar clave en JAVA

Holas, tengo un problema con la validacion de una clave. Hice una pantalla en la cual debo ingresar una clave. Es una pantalla como la de los bancos en donde se digita la cedula y se debe digitar la clave. Ya tengo la pantalla hecha pero no se como hacer la validacion de la clave. Esta tiene que se xxx-xxx-xxx, en donde los tres primeros terminos deben ser todos numeros mayores que 5, el segundo bloque de xxx debe tener numeros menores que 5 pero no negativos y el tercer bloque debe tener numeros iguales. COmo hago eso? ademas debe salir xxx-xxx-xxx es decir con el tocken "-". Entonces hay que hacer una clase clave en la que este todo eso y no se como hacer por fa ayuda
Estef está desconectado   Responder Citando
Antiguo 07-may-2006, 14:36   #2 (permalink)
Colaborador
TolaWare tiene algunos puntos positivos de karma
 
Avatar de TolaWare
 
Fecha de Ingreso: julio-2005
Mensajes: 4.251
Enviar un mensaje por MSN a TolaWare
que es loq ue tiene que hacer la clase?
validar una cadena tipo "xxx-xxx-xxx"?
TolaWare está desconectado   Responder Citando
Antiguo 07-may-2006, 14:40   #3 (permalink)
Estef ha deshabilitado el karma
 
Avatar de Estef
 
Fecha de Ingreso: febrero-2006
Mensajes: 12
Si validar xxx-xxx-xxx

Es decir que en la clase se debe ingresar por ejemplo una clave 123-456-789. Es decir ingreso esa clave con esa separacion y cada uno de esos bloques debe validar. por ejmplo si ingreso una clave 123-689-521 me tiene que salir quie esta mal ingresada porque el primer bloque \debe tener numeros mayores que 5, el segundo bloque menores que cinco y el tercer bloq todos los numeros deben ser iguales. Por fa si me puedes ayudar te agradezco mucho,
Estef está desconectado   Responder Citando
Antiguo 07-may-2006, 15:46   #4 (permalink)
Colaborador
TolaWare tiene algunos puntos positivos de karma
 
Avatar de TolaWare
 
Fecha de Ingreso: julio-2005
Mensajes: 4.251
Enviar un mensaje por MSN a TolaWare
Me gusto el porblema que planteaste y lo resolvi mas o menos

Cualquier duda, pregunte

Código:
public class test {
	public static void main(String [] args) {
		Clave key = new Clave("666","444","111");
		if(key.validarClave())
			System.out.println("Es correcto");
		else
			System.out.println("Es incorrecto");
	}
}

public class Clave {
	
	String subKey1;
	String subKey2;
	String subKey3;
	
	public Clave(String subClave1, String subClave2, String subClave3){
		subKey1 = subClave1;
		subKey2 = subClave2;
		subKey3 = subClave3;
	}
	
	public boolean validarClave(){
		if (validarSubStr1() && validarSubStr2() && validarSubStr3())
			return true;
		else
			return false;
	}
	
	private boolean validarSubStr1() {
		boolean ret = true;
		for (int i=0;i<subKey1.length();i++)
			if(Integer.parseInt(subKey1.substring(i,i+1))<=5)
				ret = false;
		if(subKey1.length()== 3 && ret)
			return true;
		else
			return false;
	}

	private boolean validarSubStr2() {
		boolean ret = true;
		for (int i=0;i<subKey2.length();i++)
			if(Integer.parseInt(subKey2.substring(i,i+1))>=5)
				ret = false;
		if(subKey2.length()== 3 && ret)
			return true;
		else
			return false;
	}

	private boolean validarSubStr3() {
		boolean ret = true;
		for(int i=0;i<subKey3.length()-1;i++)
			if(subKey3.toCharArray()[i]!=subKey3.toCharArray()[i+1])
				ret = false;
		if(subKey3.length()== 3 && ret)
			return true;
		else
			return false;
	}
	
}
TolaWare está desconectado   Responder Citando
Antiguo 07-may-2006, 15:48   #5 (permalink)
Colaborador
TolaWare tiene algunos puntos positivos de karma
 
Avatar de TolaWare
 
Fecha de Ingreso: julio-2005
Mensajes: 4.251
Enviar un mensaje por MSN a TolaWare
Para usar esta clase, llamas al constructor de Clave, a la cual le tenes que pasar las 3 secuencas de caracters (las xxx).
Despues llamas al metodo validarClave() y esta te dice si es correcta o no.

Tene en cuenta que si ingresas letras en ves de nuemros, cuando valides se largara una excepcion.

Saludos
TolaWare está desconectado   Responder Citando
Antiguo 07-may-2006, 18:24   #6 (permalink)
Tipdar no se puede cailificar en este momento
 
Avatar de Tipdar
 
Fecha de Ingreso: octubre-2005
Mensajes: 252
Y por qué no usaste el StringTokenizer? Te habría hecho la vida mucho más feliz.

La versión de TolaWare funciona, aquí tienes otro algoritmo:

Código:
import java.util.StringTokenizer;
import java.util.regex.Pattern;

public class Clave {

	public static boolean validarClave(String clave) {
		if (!((Pattern.compile("[0-9]{3}-[0-9]{3}-[0-9]{3}")).matcher(clave))
				.matches())
			return false;

		StringTokenizer tokens = new StringTokenizer(clave, "-");

		String trio = tokens.nextToken();
		for (int i = 0; i < 3; i++)
			if (Integer.parseInt(new Character(trio.charAt(i)).toString()) < 5)
				return false;
		trio = tokens.nextToken();
		for (int i = 0; i < 3; i++)
			if (Integer.parseInt(new Character(trio.charAt(i)).toString()) >= 5)
				return false;
		trio = tokens.nextToken();
		char primervalor = trio.charAt(0);
		for (int i = 1; i < 3; i++)
			if (trio.charAt(i) != primervalor)
				return false;
		return true;
	}

	public static void main(String[] args) {
		System.out.println(Clave.validarClave("585-123-777"));
	}
        // esto retorna true si está bien escrita, según tus requerimientos,
        // y false si está mal escrita.
}
__________________
El último TipdaR

Última edición por Tipdar; 07-may-2006 a las 19:39.
Tipdar está desconectado   Responder Citando
Antiguo 27-may-2006, 18:46   #7 (permalink)
Estef ha deshabilitado el karma
 
Avatar de Estef
 
Fecha de Ingreso: febrero-2006
Mensajes: 12
Muchas gracias por sus ayudas. Ya lo probe y si funciono gracias gracias
Estef está desconectado   Responder Citando
Antiguo 05-jun-2006, 12:07   #8 (permalink)
kakaka123 ha deshabilitado el karma
 
Fecha de Ingreso: junio-2006
Mensajes: 1
Para validar una cadena podes usar un automata finito reconocedor de ese lenguaje..
kakaka123 está desconectado   Responder Citando
Antiguo 05-jun-2006, 18:56   #9 (permalink)
xknown está en el buen camino
 
Avatar de xknown
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.243
Aunque el hilo es un poco antiguo, creo que sólo con una expresión regular hubiera bastado:
Código:
public boolean validarClave(String clave) 
{
    return ((java.util.regex.Pattern.compile("[5-9]{3}-[0-5]{3}-([0-9])\\1\\1")).matcher(clave)).matches();
}
Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
xknown está desconectado   Responder Citando
Antiguo 06-jun-2006, 04:02   #10 (permalink)
GreenEyed tiene algunos puntos positivos de karma
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.437
Muy interesante el uso de la "Back Reference" para controlar la repetición.
GreenEyed está desconectado   Responder Citando
Antiguo 25-abr-2008, 10:48   #11 (permalink)
luis3178305208 ha deshabilitado el karma
 
Fecha de Ingreso: abril-2008
Mensajes: 4
Sonrisa Re: StringTokenizer para validar clave en JAVA

hola
necesito que me ayude alguien a partir una cadena por ejemplo cuando aplico cadena.readline en el caso de un fichero llega como un string y necesito guardarlo en un arreglo de subcadenas teniendo en cuenta \" como un elemento mas de la cadena partiendo en subcadenas cada vez que encuentre minimo un espacio en blanco.
ej para la sgte cadena:" hola que mas"hola que\"mas hola" que mas"
el arrglo debe quedar:
arrcad={hola, que, mas"hola que\"mas hola", que, mas}
gracias
luis3178305208 está desconectado   Responder Citando
Antiguo 25-abr-2008, 10:50   #12 (permalink)
luis3178305208 ha deshabilitado el karma
 
Fecha de Ingreso: abril-2008
Mensajes: 4
Re: StringTokenizer para validar clave en JAVA

hay alguien que me responda?
luis3178305208 está desconectado   Responder Citando
Antiguo 25-abr-2008, 19:38   #13 (permalink)
Colaborador
TolaWare tiene algunos puntos positivos de karma
 
Avatar de TolaWare
 
Fecha de Ingreso: julio-2005
Mensajes: 4.251
Enviar un mensaje por MSN a TolaWare
Re: StringTokenizer para validar clave en JAVA

Para que te contesten a tu duda, tenés que crear un hilo nuevo con tu consulta, no usar hilos anteriores.

Saludos
TolaWare está desconectado   Responder Citando
Respuesta
Calificación: Calificación de Tema: 1 votos, 4,00 de promedio.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Desactivado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 21:31.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93