Algoritmo de Luhn em Java (Validação de Cartão)

Implementação robusta do algoritmo de Luhn em Java para validar números de cartão de crédito.

Introdução

Em sistemas de pagamento Java (Spring Boot, Jakarta EE), o algoritmo de Luhn é o primeiro filtro de validação.

O Algoritmo

Módulo 10 com multiplicação alternada. Garante integridade do número antes de consultar o gateway.

Implementação em Java

credit-card-generator.jsjava
public class LuhnValidator {
    public static boolean validate(String number) {
        number = number.replaceAll("[^0-9]", "");
        if (number.isEmpty()) return false;
        
        int sum = 0;
        boolean alternate = false;
        
        for (int i = number.length() - 1; i >= 0; i--) {
            int n = Character.getNumericValue(number.charAt(i));
            if (alternate) {
                n *= 2;
                if (n > 9) n -= 9;
            }
            sum += n;
            alternate = !alternate;
        }
        return sum % 10 == 0;
    }
    
    public static void main(String[] args) {
        System.out.println(validate("4539578763621486")); // true
        System.out.println(validate("1234567890123456")); // false
    }
}

Método estático e thread-safe. Remove caracteres não numéricos (espaços, hífens) antes da validação, facilitando o uso com inputs formatados.

Não quer escrever código?

Use nossa ferramenta online gratuita para processar CREDIT-CARD-GENERATOR instantaneamente. Perfeito para testes rápidos.

Usar Ferramenta de CREDIT-CARD-GENERATOR Online