Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [Java] Problema con NumberFormatException

    se provo ad eseguire il mio programma mi viene fuori questo bel messaggio:
    codice:
    Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "A"
    .....
    la riga incriminate dovrebbe essere quella in rosso di questo metodo:
    codice:
        private char CFControl(String stringVal) {
            int pesi = 0;
            int[] arrayPesi = {1, 0, 5, 7, 9, 13, 15, 17, 19, 21, 1, 0, 5, 7, 9, 13, 15, 17, 19, 21, 2, 4, 18, 20, 11, 3, 6, 8, 12, 14, 16, 10, 22, 25, 24, 23};
            stringVal = stringVal.toUpperCase();
            for (int i = 0; i < stringVal.length(); ++i) {
                if (((i + 1) % 2) == 0) {
                    if (stringVal.toCharArray()[i] >= Integer.parseInt("0") && stringVal.toCharArray()[i] <= Integer.parseInt("9")) {
                        pesi += stringVal.toCharArray()[i] - Integer.parseInt("0");
                    } else if (stringVal.toCharArray()[i] >= Integer.parseInt("A") && stringVal.toCharArray()[i] <= Integer.parseInt("Z")) {
                        pesi += stringVal.toCharArray()[i] - Integer.parseInt("A");
                    }
                } else {
                    if (stringVal.toCharArray()[i] >= Integer.parseInt("0") && stringVal.toCharArray()[i] <= Integer.parseInt("9")) {
                        pesi += arrayPesi[stringVal.toCharArray()[i] - Integer.parseInt("0")];                
    } else if (stringVal.toCharArray()[i] >= Integer.parseInt("A") && stringVal.toCharArray()[i] <= Integer.parseInt("Z")) {
                        pesi += arrayPesi[stringVal.toCharArray()[i] - Integer.parseInt("A") + 10];
                    }
                }
            }
            return (char) (65 + (pesi % 26));
        }
    dove sbaglio??

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: [Java] Problema con NumberFormatException

    Originariamente inviato da fermat
    dove sbaglio??
    "A" non è un numero e quindi Integer.parseInt("A") fallisce

    La stringa passata come argomento a parseInt deve essere rappresentare un numero valido, non lettere o altri simboli.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: [Java] Problema con NumberFormatException

    Originariamente inviato da Alex'87
    La stringa passata come argomento a parseInt deve essere rappresentare un numero valido, non lettere o altri simboli.
    Correttissimo .... a meno che sia da trattare in una certa "base" (in base 16 la "A" vale 10)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4

    Re: Re: [Java] Problema con NumberFormatException

    Originariamente inviato da Alex'87
    "A" non è un numero e quindi Integer.parseInt("A") fallisce

    La stringa passata come argomento a parseInt deve essere rappresentare un numero valido, non lettere o altri simboli.
    ok ma allora nn capisco molto che senso ha il metodo parseInt di Integer che accetta String...

    come potrei risolvere??
    devo controllare che il valore si stringVal[i].toCharArray() sia compreso tra A e Z e in caso sottrarlo ad A.
    mi server per il calcolo del codice fiscale.

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Re: Re: [Java] Problema con NumberFormatException

    Originariamente inviato da fermat
    come potrei risolvere??
    devo controllare che il valore si stringVal[i].toCharArray() sia compreso tra A e Z e in caso sottrarlo ad A.
    codice:
    if (stringVal[i].toCharArray() >= 'A' && stringVal[i].toCharArray() <= 'Z') {
      ...
    }
    Originariamente inviato da andbin
    Correttissimo .... a meno che sia da trattare in una certa "base" (in base 16 la "A" vale 10)
    Giusto, non ci avevo pensato
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: [Java] Problema con NumberFormatException

    Originariamente inviato da fermat
    ok ma allora nn capisco molto che senso ha il metodo parseInt di Integer che accetta String...
    "parsare" una stringa es. "1234" ed ottenere un valore numerico 1234 di tipo int.

    Originariamente inviato da fermat
    come potrei risolvere??
    In generale dipende da cosa devi fare ....

    Originariamente inviato da fermat
    devo controllare che il valore si stringVal[i].toCharArray() sia compreso tra A e Z e in caso sottrarlo ad A.
    mi server per il calcolo del codice fiscale.
    la cosa più banale:

    if (ch >= 'A' && ch <= 'Z')

    dove ch è proprio un valore di tipo char.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    ok perfetto problema risolto.
    grazie!!

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.