Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Vettori stringa nella ricorsione


    Ho qsti 2 metodi:
    public void walk(Node node)
    {

    int i=0;
    tipoNodo(node,titoli2,i);
    //recurse
    for(Node child = node.getFirstChild();
    child != null; child = child.getNextSibling())
    {
    walk(child);
    }
    //stampa

    }//end of walk

    public void tipoNodo(Node node)
    {

    int type = node.getNodeType();
    switch(type)
    {

    case Node.ELEMENT_NODE:
    {
    if ( node.getNodeName().equals( "titolo" ) )
    {
    String nPezzi;
    Element elTitoli=(Element) node;
    Node figlio=node.getFirstChild();
    for(i=0;i<30;i++)
    titoli2[i]= figlio.getNodeValue(); //NON VA!
    i++;
    nPezzi=elTitoli.getAttribute("npezzi");
    codice=codiceP+elTitoli.getAttribute("codart");
    }
    Voglio mettere figlio.getNodeValue(); in un array di stringe(TITOLI2[]). Ma qsto metodo (tipoNodo) è chiamato da un altro metodo (walk)che a sua volta ricorsivo. Come faccio?? x favore sono in crisi

  2. #2
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ciao; scusa ma non ho capito... non ti esegue quel for? Ma che tipo di errore ti dà? Di primo acchitto ti direi:


    for(i=0;i<30;i++)
    titoli2[i]= figlio.getNodeValue(); //NON VA!
    i++;

    nPezzi=elTitoli.getAttribute("npezzi");
    codice=codiceP+elTitoli.getAttribute("codart");

    Innanzitutto, ma penso sia stato 1 errore di copia, l'intero i dove lo dichiari? E poi perchè incrmentare i se già ci pensa il for? Cmq mi sembra strano che il for non venga eseguito. Semmai posta l'errore che ti dà. Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  3. #3

    La " i " si azzera sempre

    Scusa il ritardo ero in palestra...in pratica se faccio il ciclo for ottengo nel vettore titoli2 tutti gli elementi che hanno un valore pari a all'ultimo nodo cioè xdo le info iniziali e mi rimanel'ultimo che si sovrascrive in tutti gli elementi dell'array! Ho provato a dichiarare "i" ovunque, nella classe, nel walk, nel tipoNodo, ma qndo la stampo a video si azzera sempre. Xchè la ricorsione sovrascrive il dato precedente? Qndo facevo la stampa di node.getNodeValue() mi visualizzava tutti gli elementi. Ma se voglio salvarli li xdo.

  4. #4
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ciao. Secondo me dovresti aggiungerli non ad un array di titoli2 bensì ad un vector in manier tale che l'elemento, usando il metodo add, venga sempre inserito all'ultimo posto del vector; una cosa del tipo:

    .
    .
    .
    .
    Vector titoli2 = new Vector();
    .
    .
    .
    for( int i = 0; i < 30; i++ ){
    titoli2.add( figlio.getNodeValue() );
    }
    .
    .
    .

    Questa soluzione è la più semplice che mi venga in mente, senza provare nulla . Spero ti sia d'aiuto ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  5. #5
    [ot]
    Sarebbe gradito, utile e pro-regolamento
    inserire nel titolo della discussione
    il linguaggio di programmazione che si sta utilizzando,
    con lo scopo di far capire anche a chi non conosce
    o non è interessato a JAVA, di cosa si sta parlando.
    Leggere in proposito il punto 5:
    http://forum.html.it/forum/showthrea...hreadid=588640

    grazie.
    [/ot]
    ...Terrible warlords, good warlords, and an english song

  6. #6

    ciclo for?

    Scusa ma cosa serve il ciclo for per incremetare la i? Dato che non compare col metodo add?

    for( int i = 0; i < 30; i++ ){
    titoli2.add( figlio.getNodeValue() );
    }

  7. #7

    Grazie Angelo1974

    Funziona cosi' :gren:
    Ti sono davvero grato!!!!!
    Al moderatore chiedo scusa. La prox volta non sbagliero`

  8. #8
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Scusa ma cosa serve il ciclo for per incremetare la i? Dato che non compare col metodo add?

    for( int i = 0; i < 30; i++ ){
    titoli2.add( figlio.getNodeValue() );
    }
    Non lo so a cosa ti servisse il for.. vedendolo pensavo che dovessi fare l'inserimento per 30 volte..... perciò l'ho lasciato; se non devi fare l'inserimento per 30 volte puoi tranquillamente toglierlo. Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  9. #9

    Non serve perche'....

    Il metodo e` ricorsivo e quindi il ciclo for non serve, mi avrebbe servito se avessi avuto un array peri l'indice
    ......
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia
    bellissima frase


    ciao a te e grazie ancoraaaa

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.