Encontrar la longitud de un valor de una entrada que no trabaja

votos
0

Por lo tanto, el objetivo de este proyecto es utilizar el algoritmo de Luhn en una entrada de 16 dígitos. Mi código hasta ahora es la siguiente:

        boolean boo = false;
        while (!boo) {
            System.out.print(Enter a credit card number (enter a blank line to quit): );
            String cardNumberSt = input.nextLine();
            int cardNumber = Integer.parseInt(cardNumberSt);
            int numLength = String.valueOf(cardNumberSt).length();

            if (numLength > 16 || numLength < 16) {
                System.out.println(ERROR! You MUST have exactly 16 digits);
                System.out.println();
            } else if (numLength == 16) {
                System.out.println(16 digits!);
            }
        }

La parte del código que rompe es la cosa-if, lo que se traduce en un error en la línea 19, no se utiliza el valor de la cardNumber int. Soy un programador principiante en Java, y nunca he encontró con un problema como este. Idk si necesito utilizar una matriz, utilice un nextInt (), o alguna otra cosa. ¡Cualquier consejo sería útil!

Publicado el 19/09/2018 a las 17:18
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
1

Se puede quitar int cardNumber = Integer.parseInt(cardNumberSt);la línea. No está utilizando cardNumbervariable en el código, sólo escribir, pero nunca ha leído.

Respondida el 19/09/2018 a las 17:23
fuente por usuario

votos
0

Cambio int cardNumber = Integer.parseInt(cardNumberSt);

a long cardNumber = Long.parseLong(cardNumberSt);

como un número de 16 dígitos no puede estar contenido en una intpor lo que tendrá que utilizar unalong

gama int: -2147483648 a 2147483647 , 32 bit

de largo alcance: -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807 , 64 bit

Y como se mencionó anteriormente, sólo se puede comentar la línea que dio el aviso a medida que actualmente no lo está utilizando.

Respondida el 19/09/2018 a las 17:35
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more