Classe scanner, inserimento di stringhe.

di il
2 risposte

Classe scanner, inserimento di stringhe.

Risolto il problema con la virgola, nasce il problema dell'inserimento delle stringhe con spazi.
Se uso la seguente istruzione:
String nome = in.next(); accetta solo la prima parola. Es.: ciao a tutti, solo ciao è contenuta nella
variabile nome.

Se uso:

String nome = in.nextLine(); il compilatore ignora questa istruzione.

In rete non ho trovato altri metodi della SCANNER per acquisire stringhe con spazi.
Potreste darmi qualche suggerimento?
Grazie.

2 Risposte

  • Re: Classe scanner, inserimento di stringhe.

    Per default, il delimitatore dei token letti dalla classe Scanner e' lo spazio.
    Lo spazio quindi e' usato per delimitare numeri e parole. Se non ti piace, puoi cambiare il delimitatore usando useDelimiter()
  • Re: Classe scanner, inserimento di stringhe.

    daiazu ha scritto:


    String nome = in.nextLine(); il compilatore ignora questa istruzione.
    Se fai in sequenza es.

    String s1 = in.next();
    String s2 = in.nextLine();

    e al primo input inserisci es. ciao INVIO

    Il newline (INVIO) è un delimitatore e rimane bufferizzato. Il successivo nextLine() invece considera il INVIO e lo prende subito automaticamente come una riga "vuota".

    Questa è una caratteristica ben nota di Scanner.

    E detto in altro modo: è bene fare sempre attenzione a mixare l'uso di nextLine con gli altri next/nextXYZ.
Devi accedere o registrarti per scrivere nel forum
2 risposte