[Risolto]Gestire una lista dinamica di stringhe

di il
6 risposte

[Risolto]Gestire una lista dinamica di stringhe

Volevo chiedervi una mano a risolvere questo problema.
Vi spiego meglio:

Con questa riga di codice
titolo = riga.select("div span strong").get(contatore).text()
utilizzandola all'interno di un ciclo e incrementando il contatore, ottengo diverse stringhe prese da internet.
Mettiamo che io non conosca il valore max di contatore,(in realtà è 19), se itero sempre arrivo al caso in cui non vi sono più stringhe e si genera un errore
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 19, Size: 19
	at java.util.ArrayList.RangeCheck(ArrayList.java:547)
	at java.util.ArrayList.get(ArrayList.java:322)
	at org.jsoup.select.Elements.get(Elements.java:544)
	at Prova2.main(Prova2.java:44)
come posso gestire questa cosa automaticamente e non scrivendo nel codice il valore del contatore?

6 Risposte

  • Re: [Risolto]Gestire una lista dinamica di stringhe

    Hai modo di verificare il numero di stringhe totale o rimanenti?

    Altrimenti potresti usare un try...catch...finally
  • Re: [Risolto]Gestire una lista dinamica di stringhe

    ale99 ha scritto:


    Hai modo di verificare il numero di stringhe totale o rimanenti?

    Altrimenti potresti usare un try...catch...finally
    Non ho modo di verificare il numero di stringhe ... avevo provato a invocare il metodo length su "riga" ma mi da un valore 500(non so se e corretto come cosa )
    per usare il try catch come si utilizza?
  • Re: [Risolto]Gestire una lista dinamica di stringhe

    MacGigi ha scritto:


    Con questa riga di codice
    titolo = riga.select("div span strong").get(contatore).text()
    utilizzandola all'interno di un ciclo e incrementando il contatore, ottengo diverse stringhe prese da internet.
    Mettiamo che io non conosca il valore max di contatore,(in realtà è 19)
    La libreria è jsoup? Non la conosco ma .... ho dato una occhiata adesso al javadoc (dovresti farlo anche tu ... )

    riga deduco sia un Element, e questo ha un:

    Elements select(String cssQuery)

    Elements è una classe che modella una lista di elementi. E Elements estende tra l'altro ArrayList, quindi HA un size().

    La documentazione javadoc va letta! Io non conosco la jsoup ma ho impiegato appena 1 minuto a trovare questa informazione.

    P.S. e tra l'altro, siccome la estensione di ArrayList è parametrizzata <Element>, diventa banale iterare con il for-each.
  • Re: [Risolto]Gestire una lista dinamica di stringhe

    SI è JSOUP.... vado a leggerla!!! grazie
  • Re: [Risolto]Gestire una lista dinamica di stringhe

    Banalmente (e in maniera estremamente pulita e lineare):
    Elements elementiStrong = riga.select("div span strong");
    
    for (Element elementoStrong : elementiStrong) {
        String testoStrong = elementoStrong.text();
        
        // .....
    }
    La documentazione di jsoup è

    https://jsoup.org/apidocs
  • Re: [Risolto]Gestire una lista dinamica di stringhe

    andbin ha scritto:


    Banalmente (e in maniera estremamente pulita e lineare):
    Elements elementiStrong = riga.select("div span strong");
    
    for (Element elementoStrong : elementiStrong) {
        String testoStrong = elementoStrong.text();
        
        // .....
    }
    La documentazione di jsoup è

    https://jsoup.org/apidocs
    Funziona alla grande!! grazie
Devi accedere o registrarti per scrivere nel forum
6 risposte