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

    [Java] Costruttore Scanner "chiede" l'Invio

    Ciao a tutti.
    Vi pongo un problema che mi si è presentato dopo aver installato java su Debian.
    Iniziando a ripassare un po di cose in Java mi sono imbattuto in un problema molto semplice ma molto fastidioso.

    Ho scritto queste semplici righe di codice:

    codice:
    public class Input {
    Scanner sc = new Scanner(System.in);
    System.out.print("Inserisci una stringa: ");
    String s = sc.nextLine();
    System.out.println("La stringa è: " + s);
    }
    Compilo ed eseguo il programma. Ovviamente ci si aspetterebbe che all'avvio esca la scritta "Inserisci una stringa: ", si inserisca una parola e, premendo Invio, esca la scritta seguente.

    Invece a me no: quando avvio il programma non esce nulla , ma se premo Invio una volta allora esce la stringa "Inserisci una stringa", e qui il programma procede come previsto.

    Ecco, il problema è proprio questo "Invio" di troppo.
    Ho provato a scrivere solo:
    codice:
    public class Input {
    Scanner sc = new Scanner(System.in);
    }
    nel programma ed è proprio il costruttore che stranamente "chiede" l'Invio in più.
    Da cosa è dovuta questa anomalia?

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157

    Re: [Java] Costruttore Scanner "chiede" l'Invio

    Originariamente inviato da dinexus
    Ciao a tutti.
    Vi pongo un problema che mi si è presentato dopo aver installato java su Debian.
    Iniziando a ripassare un po di cose in Java mi sono imbattuto in un problema molto semplice ma molto fastidioso.

    Ho scritto queste semplici righe di codice:

    codice:
    public class Input {
    Scanner sc = new Scanner(System.in);
    System.out.print("Inserisci una stringa: ");
    String s = sc.nextLine();
    System.out.println("La stringa è: " + s);
    }
    Compilo ed eseguo il programma. Ovviamente ci si aspetterebbe che all'avvio esca la scritta "Inserisci una stringa: ", si inserisca una parola e, premendo Invio, esca la scritta seguente.

    Invece a me no: quando avvio il programma non esce nulla , ma se premo Invio una volta allora esce la stringa "Inserisci una stringa", e qui il programma procede come previsto.

    Ecco, il problema è proprio questo "Invio" di troppo.
    Ho provato a scrivere solo:
    codice:
    public class Input {
    Scanner sc = new Scanner(System.in);
    }
    nel programma ed è proprio il costruttore che stranamente "chiede" l'Invio in più.
    Da cosa è dovuta questa anomalia?
    A parte aver letto tre volte per capire il problema, sei sicuro che quel codice esegua? Io dico di no.
    Almeno riporta tutto quello che provi a fare

    EDIT:

    Codice PHP:
    import java.util.Scanner;

    public class 
    Input {

        public static 
    void main(String[] args) {
            
    Scanner sc = new Scanner(System.in);
            
    System.out.print("Inserisci una stringa: ");
            
    String s sc.nextLine();
            
    System.out.println("La stringa è: " s);
        }

    questo funziona correttamente
    RTFM Read That F*** Manual!!!

  3. #3
    se nn metti import e lo scanner nn puoi inserire dall'input

  4. #4
    Signori miei, mi ero dimenticato le altre righe. Comunque se il codice è questo (corretto):

    codice:
    import java.util.Scanner; 
    
    public class Input { 
    
        public static void main(String[] args) { 
            Scanner sc = new Scanner(System.in); 
            System.out.print("Inserisci una stringa: "); 
            String s = sc.nextLine(); 
            System.out.println("La stringa è: " + s); 
        } 
    }
    Mi si presenta il problema che vi ho descritto, e cioè resta in attesa di un Invio prima di far uscire la stringa "Inserisci una stringa: ", cioè attende presumibilmente nella riga del costruttore.
    E' strana la cosa?

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da dinexus
    Signori miei, mi ero dimenticato le altre righe. Comunque se il codice è questo (corretto):

    codice:
    import java.util.Scanner; 
    
    public class Input { 
    
        public static void main(String[] args) { 
            Scanner sc = new Scanner(System.in); 
            System.out.print("Inserisci una stringa: "); 
            String s = sc.nextLine(); 
            System.out.println("La stringa è: " + s); 
        } 
    }
    Mi si presenta il problema che vi ho descritto, e cioè resta in attesa di un Invio prima di far uscire la stringa "Inserisci una stringa: ", cioè attende presumibilmente nella riga del costruttore.
    E' strana la cosa?
    A me funziona correttamente. Hai provato a compilare ed eseguire da riga di comando, senza IDE o altro?

  6. #6
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da dinexus
    Mi si presenta il problema che vi ho descritto, e cioè resta in attesa di un Invio prima di far uscire la stringa "Inserisci una stringa: ", cioè attende presumibilmente nella riga del costruttore.
    E' strana la cosa?
    Che virtual machine stai usando?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  7. #7
    Originariamente inviato da Kaamos
    A me funziona correttamente. Hai provato a compilare ed eseguire da riga di comando, senza IDE o altro?
    Sì, ho provato anche dalla shell, mi dà lo stesso problema.

  8. #8
    Originariamente inviato da Alex'87
    Che virtual machine stai usando?
    java-1.5.0-gcj-4.4

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da dinexus
    java-1.5.0-gcj-4.4
    Hai provato a compilare col javac del JDK della Oracle invece che col gcj?

  10. #10
    Originariamente inviato da Kaamos
    Hai provato a compilare col javac del JDK della Oracle invece che col gcj?
    Ho scaricato OpenJDK e ora non mi da più problemi, quindi presumo che il problema è del compilatore gcj.
    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.