Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Problema indexOf

  1. #1

    Problema indexOf

    Ciao a tutti,
    ho riscontrato un problema molto strano nel mio problema.
    In questo pezzo di testo
    codice:
    <table class="datatable1"><tr><td  class="conc" bgcolor="FF6633" width="180"><center>ARTISTA</center></td><td class="conc" bgcolor="FF6633" width="80"><p align="center">DATA</p></td><td class="conc" bgcolor="FF6633" width="100"><p align="center">LOCALE</p></td><td class="conc" bgcolor="FF6633" width="100"><p align="center">CITTA</p> </td><td class="conc" bgcolor="FF6633" width="50"><p align="center">PROV.</p> </td><td class="conc" bgcolor="FF6633" width="100"><p align="center">INFO</p> </td></tr><tr><td class="conc" bgcolor="FFCC66" width="180"><p align="center">Mango
    <div id="video">Video - Foto - Cd
    
    </div></p></td><td class="conc" bgcolor="FFCC66" width="80"><p align="center">23/2/09</p></td><td class="conc" bgcolor="FFCC66" width="100"><p align="center"> Teatro Smeraldo</p> </td><td class="conc" bgcolor="FFCC66" width="100"><p align="center">Milano</p> </td><td class="conc" bgcolor="FFCC66" width="50"><p align="center">MI</p> </td><td class="conc" bgcolor="FFCC66" width="100"><p align="center"><div id="video">Biglietti
    Biglietti+Hotel</div></p></td></tr><tr><td class="conc" bgcolor="FFFFCC" width="180"><p align="center">Frank Turner
    <div id="video">Video - Foto - Cd
    
    </div></p></td><td class="conc" bgcolor="FFFFCC" width="80"><p align="center">24/2/09</p></td><td class="conc" bgcolor="FFFFCC" width="100"><p align="center"> Zoe Club</p> </td><td class="conc" bgcolor="FFFFCC" width="100"><p align="center">Milano</p> </td><td class="conc" bgcolor="FFFFCC" width="50"><p align="center">MI</p> </td><td class="conc" bgcolor="FFFFCC" width="100"><p align="center"><div id="video">Biglietti
    Biglietti+Hotel</div></p></td></tr>.............
    .................
    ...............</table>
    io eseguo questo codice (dove doc_sacrificabile è il testo di tipo StringBuffer appena scritto qui sopra):
    codice:
    	int start = doc_sacrificabile.indexOf("<td class=\"conc\" bgcolor=\"") + ("<td class=\"conc\" bgcolor=\"").length();
    	doc_sacrificabile.delete(0, start);
    	int end = doc_sacrificabile.indexOf("</table>")+("</table>").length();
    	doc_sacrificabile.delete(end, doc_sacrificabile.length() - 1);
    		
    	System.out.println(doc_sacrificabile);
    Il problema è che il testo che mi viene mostrato in output parte dalla SECONDA occorrenza... saltando quindi la <td> con dentro scritto ARTISTA (qui sotto metto l'output)
    codice:
    FF6633" width="80"><p align="center">DATA</p></td><td class="conc" bgcolor="FF6633" width="100"><p align="center">LOCALE</p></td><td class="conc" bgcolor="FF6633" width="100"><p align="center">CITTA</p> </td><td class="conc" bgcolor="FF6633" width="50"><p align="center">PROV.</p> </td><td class="conc" bgcolor="FF6633" width="100"><p align="center">INFO</p> </td></tr><tr><td class="conc" bgcolor="FFCC66" width="180"><p align="center">Mango
    <div id="video">Video - Foto - Cd
    </div></p></td><td class="conc" bgcolor="FFCC66" width="80"><p align="center">23/2/09</p></td><td class="conc" bgcolor="FFCC66" width="100"><p align="center"> Teatro Smeraldo.........
    ............
    .............
    </table>
    non so proprio come spiegarmi questo comportamento... prima di fare quell'indexOf io non tocco in nessun modo il testo... non saprei proprio come risolvere...

    qualcuno può darmi una mano?
    ne sarei estremamente grato!
    Flash Developer for Rich Media
    PHP, jQuery Developer

  2. #2
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    codice:
    <td  class="conc" bgcolor="FF6633" width="180"><center>ARTISTA</center>
    Quanti spazi ci sono tra <td e class ?
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  3. #3
    °O°
    omg... non me ne ero accorto...........
    però.... nel resto dei <td> contenti i nomi dei gruppi/artisti
    come
    codice:
    <td class="conc" bgcolor="FFCC66" width="180"><p align="center">Mango
    <div id="video">Video - Foto - Cd    </div></p></td><td class="conc" bgcolor="FFCC66" width="80"><p align="center">23/2/09</p></td>
    non hanno il doppio spazio... eppure il mio codice java quando scorre le varie righe della tabella me li ignora tutti e inizia sempre dalla seconda colonna ._________.
    Flash Developer for Rich Media
    PHP, jQuery Developer

  4. #4
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Non so che dirti.. non riesco a vedere nulla che giustifichi questo comportamento.
    Prova a fare qualche modifica utile ai fini del debug:

    codice:
    System.out.println("doc_sacrificabile (prima dell'elaborazione):");
    System.out.println(doc_sacrificabile);
    System.out.println();
    
    String startString = "<td class=\"conc\" bgcolor=\"";
    System.out.println("startString: "+startString);
    
    int start = doc_sacrificabile.indexOf(startString) + startString.length();
    System.out.println("start: "+start);
    doc_sacrificabile.delete(0, start);
    String endString = "</table>";
    
    int end = doc_sacrificabile.indexOf(endString)+endString.length();
    doc_sacrificabile.delete(end, doc_sacrificabile.length() - 1);
    System.out.println("ent: "+end);
    		
    System.out.println(doc_sacrificabile);
    Se salta davvero la prima colonna, modifica doc_sacrificabile in modo che vi sia solo quella (e </table>). Qualcosa che non combacia deve esserci per forza e visualizzare le righe su cui l'algoritmo sta lavorando su un editor di testo può tornarti comodo.
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  5. #5
    Credo di avere risolto... in pratica... io mettevo tutti i dati che estrapolavo dall'html in una matrice e a causa del problema di indexOf me li vedevo "shiftati" di una colonna... in pratica la prima colonna (che mi interessava) non me la inseriva nella matrice ma mi inseriva la quinta (che non mi interessava in quanto io volevo i dati dalla 1a alla 4a colonna)
    Questo succedeva proprio a causa del doppio spazio nel primo tag <td>
    ora ho sistemato e sembra tutto a posto... spero di non trovarmi delle sorprese =P

    grazie mille comunque!
    Flash Developer for Rich Media
    PHP, jQuery Developer

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.