Java - Necesito que solo acepte números de 16 dígitos

 
Vista:

Necesito que solo acepte números de 16 dígitos

Publicado por Joker (4 intervenciones) el 15/04/2020 01:42:34
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
public class Teclado {
	return Tarjeta;
	public Cuenta( int Tarjeta) {
		public int getTarjeta() {
			return Tarjeta;
	    }while(cpu==false);
 
	System.out.println("Ingrese su Tarjeta");
		try{
		nc=Integer.parseInt(Teclado.readLine());
		}
		catch(NumberFormatException e){
		error=true;
		System.out.println("No debe ingresar ninguna letra");
		System.out.println("Vuelva a ingresar su numero de Tarjeta");
		}
		}while(error);
	}
do{
	enc=false;
	nIntentos++;
	cont=Integer.parseInt(Teclado.readLine());
	if (Tarjeta==cont){
	System.out.println("Tarjeta correcta");
	enc=true;
	}
	else  {System.out.println("Tarjeta incorrecta");
	System.out.println("Vuelva a ingresarla"); }
 
	}while((nIntentos<3)&&(!enc));
 
	if(!enc){System.out.println("Ha excedido el numero de intentos");
	System.out.println("No puede seguir usando el cajero");
	System.exit(0);}
 
 
	}
ese es el código necesito q solo acepte numeros de 16 digitos y necesito sacar el try y catch
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 129
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Necesito que solo acepte números de 16 dígitos

Publicado por Juan Manuel (53 intervenciones) el 15/04/2020 02:46:48
la verdad no se entiende un chorizo tu codigo, en una parte creo que un metodo contiene otro metodo, tambien hay una forma de colocar codigo directamente al hacer tu consulta.
de igual manera creo que en esta linea:
1
2
3
4
System.out.println("Ingrese su Tarjeta");
try{
nc=Integer.parseInt(Teclado.readLine());
}

la linea Integer.parseInt(Teclado.readLine()); deberia de estar en un ciclo while ejemplo:

contador = 3;

1
2
3
4
5
6
7
8
9
while (contador>0){
System.out.println("Ingrese su Tarjeta");
nc=Integer.parseInt(Teclado.readLine());
if (nc>16){
    System.out.println("numero de tarjeta exedido);
    contador--;
    System.out.println("intentos restantes: "+contador);
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Necesito que solo acepte números de 16 dígitos

Publicado por Billy Joel (875 intervenciones) el 15/04/2020 04:20:21
No estoy seguro si entendí bien, pero lo que entendí es que necesitas simular un cajero en donde debes ingresar 16 números y hasta ahí.
Si es así entonces lo resuelvo así pero hasta ahí (ingresar la tarjeta)

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
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
 
/**
 *
 * @author billy.johnson
 */
public class Cuenta {
 
    public static void main(String[] args) {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int MAX_INTENTOS = 3;
        int intentos = 0;
        Long tarjeta = null;
        do {
            intentos++;
            try {
                System.out.print("Ingrese su tarjeta: ");
                String s = br.readLine();
                if (s.length() == 16) {
                    tarjeta = Long.parseLong(s);
                    break;
                } else {
                    System.out.println("Tarjeta inválida, debe ingresar 16 números");
                }
            } catch (IOException | NumberFormatException ex) {
                System.out.println("Solo ingrese numeros");
            }
        } while (intentos < MAX_INTENTOS);
        if (tarjeta == null || intentos >= 3) {
            System.out.println("Ha excedido el numero de intentos"
                    + "\nNo puede seguir usando el cajero");
        } else {
            /////////////////////////////////////////////////////////////////
            //////////AQUÍ PUEDE CONTINUAR//////////////
            /////////////////////////////////////////////////////////////////
            System.out.println("Continuara... " + tarjeta);
        }
    }
}

Saludos,
Billy Joel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar