Buonasera a tutti,
avrei la necessità di creare un metodo che mi generi un progressivo alfanumerico composto da 2 caratteri.
Ho creato un metodo che mi genera un codice alfanumerico ma di un solo carattere..
Riporto di seguito il codice:
<code>
public static String getProgressivoAlfanumerico(String codiceFiscale){
Vector CodFiscaleNew = new Vector();
//suddivido il codice fiscale passato in input
String [] array = codiceFiscale.split("");
for(int i=0;i<array.length;i++){
String lettera = array[i];
//trasformo le lettere in numeri e i numeri restano numeri
if(lettera.equals("A")){CodFiscaleNew.addElement(" 0");}
if(lettera.equals("B")){CodFiscaleNew.addElement(" 1");}
if(lettera.equals("C")){CodFiscaleNew.addElement(" 2");}
if(lettera.equals("D")){CodFiscaleNew.addElement(" 3");}
if(lettera.equals("E")){CodFiscaleNew.addElement(" 4");}
if(lettera.equals("F")){CodFiscaleNew.addElement(" 5");}
if(lettera.equals("G")){CodFiscaleNew.addElement(" 6");}
if(lettera.equals("H")){CodFiscaleNew.addElement(" 7");}
if(lettera.equals("I")){CodFiscaleNew.addElement(" 8");}
if(lettera.equals("J")){CodFiscaleNew.addElement(" 9");}
if(lettera.equals("K")){CodFiscaleNew.addElement(" 10");}
if(lettera.equals("L")){CodFiscaleNew.addElement(" 11");}
if(lettera.equals("M")){CodFiscaleNew.addElement(" 12");}
if(lettera.equals("N")){CodFiscaleNew.addElement(" 13");}
if(lettera.equals("O")){CodFiscaleNew.addElement(" 14");}
if(lettera.equals("P")){CodFiscaleNew.addElement(" 15");}
if(lettera.equals("Q")){CodFiscaleNew.addElement(" 16");}
if(lettera.equals("R")){CodFiscaleNew.addElement(" 17");}
if(lettera.equals("S")){CodFiscaleNew.addElement(" 18");}
if(lettera.equals("T")){CodFiscaleNew.addElement(" 19");}
if(lettera.equals("U")){CodFiscaleNew.addElement(" 20");}
if(lettera.equals("V")){CodFiscaleNew.addElement(" 21");}
if(lettera.equals("W")){CodFiscaleNew.addElement(" 22");}
if(lettera.equals("X")){CodFiscaleNew.addElement(" 23");}
if(lettera.equals("Y")){CodFiscaleNew.addElement(" 24");}
if(lettera.equals("Z")){CodFiscaleNew.addElement(" 25");}
if(lettera.equals("0")){CodFiscaleNew.addElement(" 0");}
if(lettera.equals("1")){CodFiscaleNew.addElement(" 1");}
if(lettera.equals("2")){CodFiscaleNew.addElement(" 2");}
if(lettera.equals("3")){CodFiscaleNew.addElement(" 3");}
if(lettera.equals("4")){CodFiscaleNew.addElement(" 4");}
if(lettera.equals("5")){CodFiscaleNew.addElement(" 5");}
if(lettera.equals("6")){CodFiscaleNew.addElement(" 6");}
if(lettera.equals("7")){CodFiscaleNew.addElement(" 7");}
if(lettera.equals("8")){CodFiscaleNew.addElement(" 8");}
if(lettera.equals("9")){CodFiscaleNew.addElement(" 9");}
}
//calcolo posizioni pari
String s0 = (String) CodFiscaleNew.get(1);
int n0 = Integer.parseInt(s0);
String s2 = (String) CodFiscaleNew.get(3);
int n2 = Integer.parseInt(s2);
String s4 = (String) CodFiscaleNew.get(5);
int n4 = Integer.parseInt(s4);
String s6 = (String) CodFiscaleNew.get(7);
int n6 = Integer.parseInt(s6);
String s8 = (String) CodFiscaleNew.get(9);
int n8 = Integer.parseInt(s8);
String s10 = (String) CodFiscaleNew.get(11);
int n10 = Integer.parseInt(s10);
String s12 = (String) CodFiscaleNew.get(13);
int n12 = Integer.parseInt(s12);
// sommo tutti i numeri pari
int sommaPari = n0+n2+n4+n6+n8+n10+n12;
//calcolo le posizioni dispari
String s1 = (String) CodFiscaleNew.get(0);
int n1 = Integer.parseInt(s1);
String s3 = (String) CodFiscaleNew.get(2);
int n3 = Integer.parseInt(s3);
String s5 = (String) CodFiscaleNew.get(4);
int n5 = Integer.parseInt(s5);
String s7 = (String) CodFiscaleNew.get(6);
int n7 = Integer.parseInt(s7);
String s9 = (String) CodFiscaleNew.get(8);
int n9 = Integer.parseInt(s9);
String s11 = (String) CodFiscaleNew.get(10);
int n11 = Integer.parseInt(s11);
String s13 = (String) CodFiscaleNew.get(12);
int n13 = Integer.parseInt(s13);
Vector vetDispari = new Vector();
vetDispari.addElement(new Integer(n1));
vetDispari.addElement(new Integer(n3));
vetDispari.addElement(new Integer(n5));
vetDispari.addElement(new Integer(n7));
vetDispari.addElement(new Integer(n9));
vetDispari.addElement(new Integer(n11));
vetDispari.addElement(new Integer(n13));
int sommaDispari = 0;
int numNew = 0;
for(int t=0;t<vetDispari.size();t++){
String sT = vetDispari.get(t).toString();
int nn = Integer.parseInt(sT);
if(nn==0){numNew=1;}
if(nn==1){numNew=0;}
if(nn==2){numNew=5;}
if(nn==3){numNew=7;}
if(nn==4){numNew=9;}
if(nn==5){numNew=13;}
if(nn==6){numNew=15;}
if(nn==7){numNew=17;}
if(nn==8){numNew=19;}
if(nn==9){numNew=21;}
if(nn==10){numNew=2;}
if(nn==11){numNew=4;}
if(nn==12){numNew=18;}
if(nn==13){numNew=20;}
if(nn==14){numNew=11;}
if(nn==15){numNew=3;}
if(nn==16){numNew=6;}
if(nn==17){numNew=8;}
if(nn==18){numNew=12;}
if(nn==19){numNew=14;}
if(nn==20){numNew=16;}
if(nn==21){numNew=10;}
if(nn==22){numNew=22;}
if(nn==23){numNew=25;}
if(nn==24){numNew=24;}
if(nn==25){numNew=23;}
// sommo tutti i numeri dispari
sommaDispari = sommaDispari+numNew;
}
//I valori ottenuti vengono a loro volta sommati e il totale viene diviso per 26.
int sommaTotale = sommaPari + sommaDispari;
int dividendo = 26;
int divisione = sommaTotale/dividendo;
//calcolo il resto della divisione e verifico il carattere corrispondente ad esso
int moltiplicazione = divisione*dividendo;
int sottrazione = sommaTotale-moltiplicazione;
String codControllo = String.valueOf(sottrazione);
if(codControllo.equals("0")){codControllo="A";}
if(codControllo.equals("1")){codControllo="B";}
if(codControllo.equals("2")){codControllo="C";}
if(codControllo.equals("3")){codControllo="D";}
if(codControllo.equals("4")){codControllo="E";}
if(codControllo.equals("5")){codControllo="F";}
if(codControllo.equals("6")){codControllo="G";}
if(codControllo.equals("7")){codControllo="H";}
if(codControllo.equals("8")){codControllo="I";}
if(codControllo.equals("9")){codControllo="J";}
if(codControllo.equals("10")){codControllo="K";}
if(codControllo.equals("11")){codControllo="L";}
if(codControllo.equals("12")){codControllo="M";}
if(codControllo.equals("13")){codControllo="N";}
if(codControllo.equals("14")){codControllo="O";}
if(codControllo.equals("15")){codControllo="P";}
if(codControllo.equals("16")){codControllo="Q";}
if(codControllo.equals("17")){codControllo="R";}
if(codControllo.equals("18")){codControllo="S";}
if(codControllo.equals("19")){codControllo="T";}
if(codControllo.equals("20")){codControllo="U";}
if(codControllo.equals("21")){codControllo="V";}
if(codControllo.equals("22")){codControllo="W";}
if(codControllo.equals("23")){codControllo="X";}
if(codControllo.equals("24")){codControllo="Y";}
if(codControllo.equals("25")){codControllo="Z";}
return codControllo;
}
</code>
Qualcuno ha gentilmente un'idea e fornirmi qualche esempio?
Grazie in anticipo!

Rispondi quotando
al volante son nervoso
