próbuję napisać funkcję , która wyliczy mi cyfrę kontrolną do dowodu osobistego na podstawie określonych danych wejściowych (seria dowodu, numer dowodu).
Dowód osobisty składa się z:
3 litery - seria dowodu
1 cyfra - cyfra kontrolna wyliczona z pozostałych znaków
5 cyfr - numer dowodu
załóżmy że:
String idCardSeriesPart = AAA;
String idCardNumberPart = 23456;
Nie działa mi odwołanie do elmentu hashmapy gdy w hashmap.get podaję wartość z tablicy - opisane w kodzie poniżej.
Podpowiecie coś?
private static String countIdCardControlNumber(String idCardSeriesPart, String idCardNumberPart){
Integer sum;
HashMap<String, Integer> idCardSeriesHashMap = new HashMap<String, Integer>();
idCardSeriesHashMap.put("A",10);
idCardSeriesHashMap.put("B",11);
idCardSeriesHashMap.put("C",12);
idCardSeriesHashMap.put("D",13);
idCardSeriesHashMap.put("E",14);
idCardSeriesHashMap.put("F",15);
idCardSeriesHashMap.put("G",16);
idCardSeriesHashMap.put("H",17);
idCardSeriesHashMap.put("I",18);
idCardSeriesHashMap.put("J",19);
idCardSeriesHashMap.put("K",20);
idCardSeriesHashMap.put("L",21);
idCardSeriesHashMap.put("M",22);
idCardSeriesHashMap.put("N",23);
idCardSeriesHashMap.put("O",24);
idCardSeriesHashMap.put("P",25);
idCardSeriesHashMap.put("Q",26);
idCardSeriesHashMap.put("R",27);
idCardSeriesHashMap.put("S",28);
idCardSeriesHashMap.put("T",29);
idCardSeriesHashMap.put("U",30);
idCardSeriesHashMap.put("V",31);
idCardSeriesHashMap.put("W",32);
idCardSeriesHashMap.put("X",33);
idCardSeriesHashMap.put("Y",34);
idCardSeriesHashMap.put("Z",35);
char[] charIdCardSeriesPart = idCardSeriesPart.toCharArray();
char[] charIdCardNumberPart = idCardNumberPart.toCharArray();
sum =
7 * (idCardSeriesHashMap.get(charIdCardSeriesPart[0]) - '0') + //to nie działa - powinno zwrócić wartość 10, z hashmapy
3 * (idCardSeriesHashMap.get(charIdCardSeriesPart[1]) - '0') + //to nie działa - powinno zwrócić wartość 10, z hashmapy
1 * (idCardSeriesHashMap.get(charIdCardSeriesPart[2]) - '0') + //to nie działa - powinno zwrócić wartość 10, z hashmapy
7 * (charIdCardNumberPart[0] - '0') +
3 * (charIdCardNumberPart[0] - '0') +
1 * (charIdCardNumberPart[0] - '0') +
7 * (charIdCardNumberPart[0] - '0') +
3 * (charIdCardNumberPart[0] - '0');
sum = sum % 10;
String idCardControlNumber = Integer.toString(sum);
return idCardControlNumber;
}
scibi92