/** * Returns an array of codes with invalid check digits. * * @param codes Codes with valid check digits * @return Codes with invalid check digits */ @Override protected String[] createInvalidCodes(String[] codes) { List<String> list = new ArrayList<String>(); // create invalid check digit values for (int i = 0; i < codes.length; i++) { String code = removeCheckDigit(codes[i]); String check = checkDigit(codes[i]); for (int j = 2; j <= 98; j++) { // check digits can be from 02-98 (00 and 01 are not possible) String curr = j > 9 ? "" + j : "0" + j; if (!curr.equals(check)) { list.add(code.substring(0, 2) + curr + code.substring(4)); } } } return list.toArray(new String[list.size()]); }