Class LuhnCheckDigit

java.lang.Object
org.apache.commons.validator.routines.checkdigit.ModulusCheckDigit
org.apache.commons.validator.routines.checkdigit.LuhnCheckDigit
All Implemented Interfaces:
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:
1.4
See Also:
  • Field Details

  • Constructor Details

    • LuhnCheckDigit

      public LuhnCheckDigit()
      Constructs a modulus 10 Luhn Check Digit routine.
  • Method Details

    • weightedValue

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

      Calculates the weighted value of a character 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 position of the character in the code, counting from right to left
      Returns:
      The weighted value of the character.