Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    34

    Creazione codice alfanumerico progressivo di 2 caratteri

    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!

  2. #2
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Salve,
    da modesto utente di questo forum la informo che non si capisce un piffero.

    La spiegazione del problema enunciato sembra in aperto contrasto con il codice riportato, che dovrebbe essere riposto tra i tag [ code] e [/ code], non tra <code> e </code>. 'che altrimenti non funziona nulla.

    il metodo
    codice:
    public static String getProgressivoAlfanumerico(String codiceFiscale)
    riceve come parametro una stringa e dovrebbe restituire il tuo progressivo alfanumerico di due caratteri? Ma con che logica deve essere creato? Rispetto alla consegna sembra molto più complicato...
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    Scusa, ma il tuo intento era di verificare se il codice fiscale è corretto?
    Oppure cosa?
    al volante son nervoso

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    34
    Innanzitutto ringrazio per le risposte,
    Purtroppo non ricordavo come dovevo utilizzare i tag e credo di essemi confusa.
    Io dovrei generare un codice fiscale fittizio. Questo codice deve essere composto da 16 caratteri. Secondo alcune normative, viene specificato che il codice alfanumerico finale deve essere ricavato prendendo dal codice fiscale fin lì ricavato, estrarre i numeri pari, quelli dispari, sommarli e dividerli per 26.
    Ho creato un metodo che me ne estrae uno solo(è il metodo che ho riportato sopra)ma dovrebbe estrarmene 2.
    La mia domanda era se qualcuno ha qualche idea su come poterne ricavare 2 caratteri anzichè uno solo.

  5. #5
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Qui c'è una spiegazione dell'algoritmo per la creazione del codice fiscale.

    Un codice fiscale ha 16 caratteri, di questi:
    Cognome - 3 alfanumerici
    Nome - 3 alfanumerici, e siamo a 6
    Data di nascita e sesso - 5 alfanumerici, e siamo a 11
    Comune di nascita - 4 alfanumerici, e siamo a 15
    Codice di controllo - 1 lettera, e siamo a 16

    Quindi, o è giusta la normativa che ho riportato sopra e quindi un codice di controllo di una lettera ti basta, oppure la seconda lettera va calcolata secondo un procedimento che non (mi) è noto, o infine hai la discrezionalità per fare quel che ti pare.
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.