Foro sobre Java SE > No insertar menos de 10 digitos en un lector.scanner
Lo he solucionado era una tonteria.
for (int pass = 0; pass < psw.length()-1;pass++){
if (pass<10){
System.out.println("La contraseñan mide menos de 10 digitos");
System.out.print("Vuelva a intentarlo");
break;
}else if (pass>10){
pass+=pass;
System.out.print(pass);
break;
Nada no me ha funcionado. No se el porque pero me habia funcionado en un momento.
if (pass.length < 10) {
System.out.println("La contraseñan mide menos de 10 digitos");
System.out.print("Vuelva a intentarlo");
break;
..........
etc etc
Hola,
Muchas gracias aunque no me permite dejarlo como lo has puesto, si no así
if (pass.length() < 10) {
y funciona.
Por cierto veo tambien que no funciona para int, float. Sólo me deja con String.
Pero no puedo utilizar un String dado que los valores que tengo que utlizar son enteros y más de 25 caracateres.
si pongo string pueden escribir letras.
si pongo int no me deja escribir 25 valores.
Alguna idea?
Muchas gracias,
Puedes usar un String, obtener los caracteres, y comprobarlos uno a uno, con métodos de la clase Character.
Hola choces,
No estoy muy puesto en java, puedes darme algun ejemplo.
Muchas gracias,
Sigue un ejemplo ejecutable:
public class Test {
public static void main(String[] args) {
String prueba = "12345%6gh7/890";
char[] toCharArray = prueba.toCharArray();
for (char caracter : toCharArray) {
if (Character.isDigit(caracter)) {
System.out.println("es un dígito: " + caracter);
} else if (Character.isLetter(caracter)) {
System.out.println("es una letra: " + caracter);
} else {
System.out.println("es otra cosa: " + caracter);
}
}
}
}
Buenas,
Puedes usar este método para verificar si la entrada de una sola vez (que compruebe si es todo números y además que sean + de 10 dígitos
private static boolean esValido(String entrada) {
return entrada.matches("\\d{10,}");
}
Por lo que ya en tu if podrías poner simplemente
if (esValido(pass)) {
blablabla
Un saludo
Muchas gracias a todos. Me ha funcionado.
Hola a todos,
Como puedo hacer para evitar que inserte menos de 10 digitos en una lectura de teclado?
Muchas gracias,
Jose Luis,