// modulo 11 check digit calculation // Copyright (C)2003 Jean-Marc Rosengard - http://w2.syronex.com/jmr/ public class Mod11Ck { public static String calc(String digStr) { int len = digStr.length(); int sum = 0, rem = 0; int[] digArr = new int[len]; for (int k=1; k<=len; k++) // compute weighted sum sum += (11 - k) * Character.getNumericValue(digStr.charAt(k - 1)); if ((rem = sum % 11) == 0) return "0"; else if (rem == 1) return "X"; else return (new Integer(11 - rem)).toString(); } public static void main(String[] args) { System.out.println(args[0]+"-"+calc(args[0])); } }