Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    378

    [java] - controllo su input

    come faccio un controllo su un input che si aspetta solo interi??

    in pratica vorrei far comparire un messaggio di errore se viene immesso qualsiasi carattere Stringa o char.

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Leggi il dato come fosse una stringa poi utilizzi Integer.parseInt(stringaLetta).
    Se non e' un intero ti solleva un'eccezione.

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Allora, parseInt di Integer lancia un'eccezione se non riesce a parsare un valore che sia un intero (da una stringa), potresti sfruttare questa situazione per avvertire dell'errore di immissione e richiedere una nuova immissione.

    codice:
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    
            int numero;
            boolean flag = false;
            System.out.print("Immetti intero: ");
            while (!flag) {            
                try {                
                    Integer integer = Integer.parseInt(in.readLine());
                    numero = integer.intValue();
                    flag = true;
                }
                catch (Exception e) {
                    System.out.print("Dato non valido\nImmetti intero: ");
                    flag = false;
                }
            }
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Originariamente inviato da simo7784
    Leggi il dato come fosse una stringa poi utilizzi Integer.parseInt(stringaLetta).
    Se non e' un intero ti solleva un'eccezione.
    Ecco
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    378
    codice:
    catch (Exception e)
    grazie ragazzi,ho trovato questa soluzione ma dato che mi lanciava l'eccezione dalla classe del metodo parseInt ho utilizzato nel catch il tipo di eccezione che mi lanciava -NumberFormatExCeption- o qualcosa di simile..
    il tipo di eccezzione -Exception- è quella che comprende tutti i tipi di eccezioni che il compilatore potrebbe lanciare giusto??in pratica è il livello più alto?

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Si, e' il livello piu' alto catturabile dal try catch. Tutte le eccezioni, controllate e non, discendono da questa classe.

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    A titolo puramente didattico aggiungerei che in molti scenari sarebbe opportuno il tipo esatto di eccezione e gestirlo caso per caso. Ti sarai accorto sbirciando nelle API che metodi e costruttori possono talvolta lanciare eccezioni di natura diversa (2, 3 o più per metodo/costruttore), che chiaramente si verificano in condizioni anomale diverse. Per esempio una connessione a database potrebbe fallire perché non si riesce a stabilire la connessione con il database, oppure perché il driver non è corretto o perché non si riesce a seleziona il database una volta connessi al database-server ecc. ecc... ed in ognuna di queste diverse situazioni potresti voler lanciare messaggi diversi o intraprendere azioni diverse.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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.