Class LuhnCheckDigit

  • All Implemented Interfaces:
    java.io.Serializable, CheckDigit

    public final class LuhnCheckDigit
    extends ModulusCheckDigit
    Modulus 10 Luhn Check Digit calculation/validation. Luhn check digits are used, for example, by: Check digit calculation is based on modulus 10 with digits in an odd position (from right to left) being weighted 1 and even position digits being weighted 2 (weighted values greater than 9 have 9 subtracted).

    See Wikipedia for more details.

    Since:
    Validator 1.4
    Version:
    $Revision: 1739356 $
    See Also:
    Serialized Form
    • Field Detail

      • LUHN_CHECK_DIGIT

        public static final CheckDigit LUHN_CHECK_DIGIT
        Singleton Luhn Check Digit instance
    • Constructor Detail

      • LuhnCheckDigit

        public LuhnCheckDigit()
        Construct a modulus 10 Luhn Check Digit routine.
    • Method Detail

      • weightedValue

        protected int weightedValue​(int charValue,
                                    int leftPos,
                                    int rightPos)

        Calculates the weighted value of a charcter in the code at a specified position.

        For Luhn (from right to left) odd digits are weighted with a factor of one and even digits with a factor of two. Weighted values > 9, have 9 subtracted

        Specified by:
        weightedValue in class ModulusCheckDigit
        Parameters:
        charValue - The numeric value of the character.
        leftPos - The position of the character in the code, counting from left to right
        rightPos - The positionof the character in the code, counting from right to left
        Returns:
        The weighted value of the character.