Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di elby
    Registrato dal
    Jan 2003
    Messaggi
    15

    Java - Controllo campi utente

    In Java come posso fare controlli utenti decenti su stringhe immesse da utenti?
    Per ora uso il semplice if concatenato che controlla che la stringa inserita dall'utente in una TextField sia diversa da null e che la sua lunghezza sia superiore ad un tot.
    Ma se io voglio controllare che in un campo di testo vi siano solo numeri o che non ci siano caratteri speciali, come faccio? Col C++ era piu' semplcie .
    :metallica Stay Tuned!

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Per controllare se l'utente ha inserito un numero hai a disposizione tutta una serie di classi wrapper per tutti i tipi di dati.

    Integer, Double, Float, Character...

    Ognuna di queste classi mette a disposizione un metodo, parseTipo (dove al posto di Tipo c'è il tipo corrispondente) che permette di trasformare una stringa nel tipo di dato corretto. Questo metodo lancia una Exception nel caso la trasformazione fallisca (perchè nella stringa non c'è un valore del tipo corretto).
    Controllando se viene lanciata o meno l'eccezione puoi sapere se il tipo di dato inserito dall'utente è corretto o meno.

    Esempio. Se voglio che l'utente inserisca un intero:
    codice:
    String valoreLetto = ...   // Leggo da tastiera (mi aspetto un intero)
    try {
       int valore = Integer.parseInt( valoreLetto );
    } catch (Exception e) {
       System.out.println("Non hai inserito un intero");
    }
    Ovvio che per sapere se l'utente ha inserito solo caratteri numerici nessuno ti vieta di scorrere tutta la stringa carattere per carattere e controllare:
    codice:
    String mioNumero = "1234567890";
    boolean result = true;
    for (int i=0; i<mioNumero.length(); i++)
       result = result & Character.isDigit(mioNumero.charAt(i));
    
    if ( result ) {
       System.out.println("La stringa contiene un numero");
    } else {
       System.out.println("La stringa contiene anche altri caratteri");
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061
    oltre a quello che ha detto LeleFT direi anche le espressioni regolari...

    ps: per controllare un'intero non si deve per forza fare uso delle eccezioni... anche se è una buona pratica utilizzare queste per vedere se la cosa è andata bene o male... ma venendo dal C trovo un po scomodo e qualche volta un po pesante usare le eccezioni per controlli banali...


    ciauz a tutti

    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Originariamente inviato da byaur
    oltre a quello che ha detto LeleFT direi anche le espressioni regolari...

    ps: per controllare un'intero non si deve per forza fare uso delle eccezioni... anche se è una buona pratica utilizzare queste per vedere se la cosa è andata bene o male... ma venendo dal C trovo un po scomodo e qualche volta un po pesante usare le eccezioni per controlli banali...


    ciauz a tutti

    Nulla da eccepire! Anch'io, se devo controllare la bontà numerica di una stringa, mi appoggio a controlli semplici sui caratteri.
    L'intervento sulle espressioni regolari, poi, è azzeccato... ogni volta mi dimentico di questo potente mezzo.

    Però, dato che il linguaggio Java mette a disposizione anche queste caratteristiche, tanto vale parlarne.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061


    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

  6. #6
    Utente di HTML.it L'avatar di elby
    Registrato dal
    Jan 2003
    Messaggi
    15
    Tanks.
    :metallica Stay Tuned!

  7. #7
    scusa te raga ma non esiste un qualche modo che costronga l'utente a digitare solo numeri

    quando dico costringa ,non intendo che il prog punti automaticamente una pistola in faccia all'utente intimandolo di scrivere solo numeri

    non c'è un qualche modo che permetta ad una jtextfield o ad una
    Jformatedtextfield di accettare solo numeri cioè se l'utente digita "asffefre" non appare niente nel campo testo mentre se digiti 1546856 appaiano i numeri

    sto cercabdo e ricercabdo e non trovo niente

    così non sarebbe necessario fare tutti questi controlli sull'input dell'utente no

    non è propio possibile

    fra la teoria e la pratica teoricamente non c'è differenza ma praticamente si

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 © 2024 vBulletin Solutions, Inc. All rights reserved.