Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2018
    Messaggi
    1

    [JAVA] Caricare ArrayList tramite Input da Tastiera

    Salve a tutti.
    Vorrei chiedere aiuto riguardo questo metodo che ho creato. In pratica ho due classi "Giocatore" e "Carta".
    La classe Carta ha come attributi un String e un Int.
    La classe giocatore ha, tra i vari attributi, un ArrayList di oggetti di tipo carta.
    Ho creato un metodo per caricare l'Array tramite input da tasiera, vi riporto il codice del metodo:

    codice:
    .
    .
    .
     private ArrayList<Carta> lista = new ArrayList<>();
    .
    .
    .
    public void add(Carta e) {
            
            lista.add(e);
        }
        
        public void Carica() {                                                           
            
            Scanner in = new Scanner(System.in);
            Scanner in2 = new Scanner(System.in);
            int i = 0;
            System.out.println("Inserire il nome delle carte ed il relativo costo, parola FINE e numero 0 per terminare: ");
            
            while(i == 0) {
                
                String input = in.next();
                                 int input2 = in2.nextInt();
                if (input.equalsIgnoreCase("FINE") && input2 == 0) i++; 
                
                else {
                                                 Carta c = new Carta(input,input2);
                    lista.add(c);
                }
                
            }
    Quando avvio il metodo riesco a caricare l'Array ma, dopo aver inserito da tastiera il primo parametro, per inserire il secondo devo andare a capo. Così facendo non ho problemi.
    Se invece inserisco il primo parametro + SPAZIO + secondo parametro, quando poi vado a capo e inserisco dei nuovi paramentri mi da il seguente errore:

    Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Scanner.java:864)
    at java.util.Scanner.next(Scanner.java:1485)
    at java.util.Scanner.nextInt(Scanner.java:2117)
    at java.util.Scanner.nextInt(Scanner.java:2076)
    at riepilogo.arraylist.carica.array.input.cerca.eleme nto.Giocatore.Carica(Giocatore.java:48)
    at riepilogo.arraylist.carica.array.input.cerca.eleme nto.RIEPILOGOARRAYLISTCaricaArrayInputCercaElement o.main(RIEPILOGOARRAYLISTCaricaArrayInputCercaElem ento.java:23)
    C:\Users\tonin\AppData\Local\NetBeans\Cache\8.2\ex ecutor-snippets\run.xml:53: Java returned: 1
    BUILD FAILED (total time: 6 seconds)

    Pensavo che il problema fosse nei metodi della classe scanner allora ho modificato il metodo del primo input con

    codice:
    String input = in.NextLine();

    ma il problema persiste.

    C'è un modo per inserire entrambi gli attributi della classe carta, tramite input da tastiera, senza dover per forza andare a capo tra un attributo e l'altro? Penso che quasi sicuramente il problema sia lì nei metodi della classe Scanner ma non riesco a risolverlo

    Grazie mille.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,303
    Sposto nel forum dedicato al linguaggio Java.


    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 andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da il.tac Visualizza il messaggio
    codice:
            Scanner in = new Scanner(System.in);
            Scanner in2 = new Scanner(System.in);
    Due oggetti Scanner collegati a System.in comunque non vanno bene.
    Nelle applicazioni "console", di oggetti Scanner connesso a System.in ce ne dovrebbe essere solo uno.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2018
    Messaggi
    1
    Grazie mille, veramente.

Tag per questa discussione

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.