Visualizzazione dei risultati da 1 a 10 su 10

Hybrid View

  1. #1
    Scusami, ho commesso un errore io<Casa>
    Villetta,centro,20000
    Appartamento,Periferia,10000
    </Casa>
    <Barca>
    5000,Honda,Motoscato
    8000,Suzuki,Piroscafo
    5000,Honda,Gommone
    </Barca>
    <Casa>
    Maisonette, centro, 30000
    Loft, centro, 50000
    </Casa>

    Come vedi i virgolettati introducono blocchi contenenti elementi della stessa tipologia, i blocchi sono di grandezza differente e contengono dati differenti e in ordine differente. In particolare, io sono interessata al prezzo, e si trova alla fine nel caso delle Case e all'inizio del caso delle Barche.



  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Martina! Visualizza il messaggio
    Come vedi i virgolettati introducono blocchi contenenti elementi della stessa tipologia, i blocchi sono di grandezza differente e contengono dati differenti e in ordine differente. In particolare, io sono interessata al prezzo, e si trova alla fine nel caso delle Case e all'inizio del caso delle Barche.
    Ok, ora è chiaro. I blocchi di ciascuna informazione (barche o case) sono ben delimitati da una "marcatore" di inizio <XXX> e un marcatore di fine </XXX>.

    In questo caso se vuoi estrarre solo dai blocchi Casa, devi mantenere uno "stato". Banalmente una variabile booleana che ti dice se sei all'interno di un blocco Casa oppure no.

    Quindi: se la riga (magari trimmata dagli spazi iniziali/finali) è esattamente <Casa> allora metti un flag es. inCasa = true. Le seguenti righe le considererai sulla condizione che inCasa sia appunto a true.
    Quando trovi la riga </Casa> metti il flag inCasa a false. Quindi tutti i blocchi delle barche verranno pertanto saltati.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Quote Originariamente inviata da andbin Visualizza il messaggio

    Quindi: se la riga (magari trimmata dagli spazi iniziali/finali) è esattamente <Casa> allora metti un flag es. inCasa = true. Le seguenti righe le considererai sulla condizione che inCasa sia appunto a true.
    Quando trovi la riga </Casa> metti il flag inCasa a false. Quindi tutti i blocchi delle barche verranno pertanto saltati.
    Tuttavia i miei elementi si trovano su righe diverse: devo pertanto mettere un for che mi indica il flag inCasa true se la riga = <Casa> en mantiene questo flag a true fino a quando non trova </Casa>.

    Giusto?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Martina! Visualizza il messaggio
    Tuttavia i miei elementi si trovano su righe diverse: devo pertanto mettere un for che mi indica il flag inCasa true se la riga = <Casa> en mantiene questo flag a true fino a quando non trova </Casa>.

    Giusto?
    No, il for non servirebbe (se non devi fare qualcosa di molto specifico che potrei non sapere io). Grosso modo:

    codice:
    String linea;
    boolean inCasa = false;
    
    while ((linea = bufReader.readLine()) != null) {
        if (linea.equals("<Casa>")) {
            inCasa = true;
        } else if (linea.equals("</Casa>")) {
            inCasa = false;
        } else {
            // qui qualunque altra riga
    
            if (inCasa) {
                // qui per ciascuna riga tra <Casa> e </Casa>
                // analizza la riga della casa (spezza la riga, estrai i dati, ecc...)
            }
        }
    }
    Ultima modifica di andbin; 07-09-2016 a 10:28
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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 © 2025 vBulletin Solutions, Inc. All rights reserved.