Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 13 su 13

Discussione: Utilizzo parseInt

  1. #11
    Quote Originariamente inviata da Ansharja Visualizza il messaggio
    Il consiglio che ti è stato dato da andbin è proprio di dichiarare quelle variabili come interi nella classe Studente.
    Quindi una volta preso l'intero dalla stringa, passi semplicemente l'intero al costruttore.
    Mi spieghi allora come faccio a leggere un intero con BufferedReader, che non li legge?
    cosa che avevo già chiesto qui e questa è stata la risposta:
    __________________________________________________ ___________________
    Con BufferedReader leggi "a righe" (String) e basta.
    Con StringTokenizer spezzi la riga in token (che sono sempre String!) e basta.
    E i token che ti aspetti siano interi li devi parsare TU nel modo che ritieni opportuno (es. parseInt di Integer).

    Tutto qui. Non cercare problemi dove non ce ne sono.
    __________________________________________________ ___________________

  2. #12
    Utente di HTML.it
    Registrato dal
    Oct 2014
    residenza
    Padova
    Messaggi
    361
    Quote Originariamente inviata da cicciozza Visualizza il messaggio
    "nel modo che ritieni opportuno"...
    Sono ore che chiedo come diavolo si usa perchè mi sto scervellando da stamattina e non riesco a capire e piuttosto che darmi una BANALE (credo per voi ) soluzione,un esempio, perdete tempo con righe e righe di cose già dette
    boh.

    nell'altro post scrivo che non so dove inserire il codice e mi rispondi "inseriscilo dove ti serve" ,

    Mi dici di non tenere i voti come string e poi riparli di usare il parseInt nel post dopo.

    Ragà, ho bisogno d'aiuto, se potete darmelo bene altrimenti amici come prima ma non mi incasinate la testa con idee poco chiare per piacere

    Certo, darti la banale soluzione sarebbe molto più veloce anche per noi, ce la caveremmo in 5 minuti. Se impieghiamo il nostro tempo per darti consigli invece che scrivere la soluzione è perché non ti aiuteremmo davvero se scrivessimo la soluzione e basta.
    Impari se capisci qual'é la problematica e poi la risolvi tu, con tutto l'aiuto di cui hai bisogno ovviamente.

    La frase di andbin che hai ripreso, se guardi, dice qual è il metodo da utilizzare, ovvero parseInt di Integer.
    DEVI essere in grado di cercare nella documentazione online come dichiarare il metodo, basta scrivere su google comunque.

  3. #13
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da cicciozza Visualizza il messaggio
    La classe Studente, accetta votoPI e votoLPI come Stringhe!
    Scusa ma te lo ha suggerito o (peggio) imposto qualcuno di passare a Studente i voti come String?? Se ci sono richieste o imposizioni ben precise (anche se fossero "dubbie"), sarebbe tutto sommato un conto.

    Ma se avessi più o meno "libertà" di scelta .... perché usare String? Se tratti i voti come String hai più svantaggi che vantaggi!! Pensaci: non puoi farci "calcoli" e non puoi farci facilmente comparazioni tra voti (a meno di formattarli opportunamente).

    Il modo sensato e logico è trattarli come int. Il fatto che arrivino da "token" String, richiede chiaramente un parsing ma è una cosa abbastanza naturale e comune.

    Quote Originariamente inviata da cicciozza Visualizza il messaggio
    Sono ore che chiedo come diavolo si usa perchè mi sto scervellando da stamattina e non riesco a capire e piuttosto che darmi una BANALE (credo per voi ) soluzione,un esempio, perdete tempo con righe e righe di cose già dette
    boh.

    nell'altro post scrivo che non so dove inserire il codice e mi rispondi "inseriscilo dove ti serve" ,

    Mi dici di non tenere i voti come string e poi riparli di usare il parseInt nel post dopo.
    Sì, appunto, il token è String, proviene da StringTokenizer, quindi ovviamente è una stringa. Ma questo NON vuol dire che devi tenerli tali ovunque e in qualunque altro oggetto!! Un voto è un numero, ha senso un tipo numerico ... non String.

    Nessuno qui (sicuramente non io) sta cercando di "incasinare la testa con idee poco chiare" agli altri. Io poi che ho le idee ultra-chiarissime su linguaggio Java (e anni di esperienza) cerco sempre di dare indicazioni tecniche precise e puntuali il più possibile. Ma mi aspetto anche che chi le riceve si sforzi un pochino di ragionare, perché è questo che serve nella programmazione.

    Facciamo un bel riassunto della logica? ok.

    a) Leggi dal file "a righe", sfruttando readLine() e chiaramente in ciclo. Tra l'altro hai usato 2 readLine, uno prima del while e l'altro al fondo del while. Sebbene sia tecnicamente corretto non è questo l' "idioma" tipico d'uso di readLine (vedi sotto).
    b) Per ciascuna riga devi estrarre dei "token", alcuni vanno bene come String (es. nome), altri hanno PIÙ senso come tipi numerici e pertanto vanno opportunamente convertiti.
    c) Se il parsing fallisce, denota che la riga è "malformata". Cosa fare lo puoi decidere tu (senza aver avuto indicazioni precise).
    d) Se il parsing ha successo, hai tutti i dati e quindi puoi creare un oggetto Studente ed inserirlo nella lista.


    Ora ti scrivo un codice MOLTO abbozzato, sei tu che devi completarlo. Se vuoi la "pappa pronta", è un altro discorso (che tra l'altro è vietato dal regolamento).

    codice:
    BufferedReader br = ..................
    ArrayList<Studente> listaStudenti = ...............
    
    String rigaLetta;
    
    while ((rigaLetta = br.readLine()) != null) {
        StringTokenizer st = new StringTokenizer(rigaLetta, "-");
        String nome = st.nextToken();
        // altri...
        String votoPIStr = st.nextToken();
        String votoLPIStr = st.nextToken();
    
        try {
            int votoPI = Integer.parseInt(votoPIStr);
            int votoLPI = .........
    
            // crea uno Studente, qui puoi passare votoPI/votoLPI (che sono int!)
            // aggiungi nella lista
        } catch (NumberFormatException e) {
            // La riga è "malformata". Puoi scegliere se:
            //   a) ignorare solo questa riga e proseguire con le altre
            //   b) far fallire l'intera lettura del file
            // A TUA scelta.
        }
    }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.