Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    33

    Effettuare controlli sull'input del carattere spazio

    Prendiamo questa piccola porzione di codice:
    codice:
    			String nome = in.nextLine();
    			while (nome.equals("")){
    				System.out.println("Devi inserire un NOME obbligatoriamente");
    				nome = in.nextLine();
    			}
    Apparentemente è un controllo infallibile,ma in realtà non è cosi.Se l'utente digita il carattere spazio una o + volte,ha bypassato il controllo.
    Come si può rimediare a ciò?

    edit:ho provato anche a usare null al posto di "",ma niente da fare!

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

    Re: Effettuare controlli sull'input del carattere spazio

    Originariamente inviato da z0rk
    Se l'utente digita il carattere spazio una o + volte,ha bypassato il controllo.
    Come si può rimediare a ciò?
    Si potrebbe validare l'input usando le espressioni regolari ma in questo caso specifico con gli spazi c'è una scorciatoia molto più semplice:

    String nome = in.nextLine().trim();
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    33

    Re: Re: Effettuare controlli sull'input del carattere spazio

    Originariamente inviato da andbin
    Si potrebbe validare l'input usando le espressioni regolari ma in questo caso specifico con gli spazi c'è una scorciatoia molto più semplice:

    String nome = in.nextLine().trim();
    Non conoscevo quel metodo.Bene,ora il codice è cosi:
    codice:
    String nome = in.nextLine().trim();
    			while (nome.equals("")){
    				System.out.println("Devi inserire un NOME obbligatoriamente");
    				nome = in.nextLine().trim();
    			}
    grazie andbin

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    33
    Approfitto per chiedere un'altra cosa.
    È possibile effettuare un controllo sulla lunghezza di un intero?
    Ad esempio io voglio che l'utente possa immettere un intero di soli 6 numeri ne + ne meno.Esiste un metodo per questo?

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da z0rk
    È possibile effettuare un controllo sulla lunghezza di un intero?
    Ad esempio io voglio che l'utente possa immettere un intero di soli 6 numeri ne + ne meno.Esiste un metodo per questo?
    Per fare validazioni dell'input in modo più rigoroso e completo si possono usare le espressioni regolari.

    Ad esempio, data una stringa di input:

    String str = in.nextLine();

    Se vuoi controllare che la stringa sia composta solo da caratteri alfabetici (uno o più) e null'altro, puoi fare:

    boolean valido = str.matches ("\\p{Alpha}+");

    Se vuoi controllare che la stringa sia composta solo di 6 cifre numeriche esatte e null'altro, puoi fare:

    boolean valido = str.matches ("[0-9]{6}");

    Vedi la classe java.util.regex.Pattern
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Originariamente inviato da z0rk
    Approfitto per chiedere un'altra cosa.
    È possibile effettuare un controllo sulla lunghezza di un intero?
    Ad esempio io voglio che l'utente possa immettere un intero di soli 6 numeri ne + ne meno.Esiste un metodo per questo?
    Potresti parsarlo a String ed effettuare poi il controllo sulla lunghezza della stringa ottenuta:
    codice:
    String s = String.valueOf(tuoNumero);
    
    if(s.length() != 6){
           //fai quello che devi fare			
    }
    S-RDZN

    J2EE programmer

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.