Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17

Discussione: Manipolazione Stringhe

  1. #1
    Utente di HTML.it L'avatar di biocco
    Registrato dal
    Sep 2003
    Messaggi
    486

    Manipolazione Stringhe

    Ciao ho un problema di manipolazione stringhe.

    Ho una stringa contenente diverse informazioni separate da un punto e virgola

    stringa = "Verdura=Insalata;Frutta=Pesca;Carne=Pollo;Pesce=M erluzzo"

    Come faccio a capire se ho della carne e ottenere il valore sapendo che potrebbe mancare della verdura?

    Sembra sia un esame per vedere il vostro QI il mio è proprio nullo :-)

  2. #2
    Se ho capito bene quello che vuoi fare, il codice è semplicemente questo:

    codice:
    if (stringa.IndexOf("Carne")!=-1)
    {
    
    //ho la carne
    
    }
    else if (!stringa.IndexOf("Verdura")!=-1)
    {
    
    //manca la Verdura
    
    }

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da trancegate
    Se ho capito bene quello che vuoi fare, il codice è semplicemente questo:

    codice:
    if (stringa.IndexOf("Carne")!=-1)
    {
    
    //ho la carne
    
    }
    else if (!stringa.IndexOf("Verdura")!=-1)
    {
    
    //manca la Verdura
    
    }
    se mi posso permettere, data la struttura della stringa:

    "Verdura=Insalata;Frutta=Pesca;Carne=Pollo;Pesce=M erluzzo"

    vedo che si può scomporre come vettore di elementi chiave-valore. In altri termini io ho la chiave Verdura di valore Insalata, la chiave Frutta di valore Pesca... etc.
    Se è così (uso pseudo codice) io farei:

    1) ricavo il vettore delle stringhe chiave-valore usando il metodo split col separatore ;

    2) creo un oggetto dizionario usando il tipo generic

    3) per ogni elemento del vettore trovato prima uso di nuovo splic con separatore = e ricavo la chiave ed il valore

    4) aggiungo al dizionario un nuovo elemento di data chiave e valore trovato prima

    5) usando i metodi del dizionario è banale sapere se esiste per esempio la chiave dolce e se sì, sapere quale.

    6) non funziona se ci sono chiavi doppie, ad esempio se la stringa contiene per esempio tre tipi di carne.

    7) in questo caso forse userei una tabella con i campi: ID, Elemento, Tipo

    8) la manipolazione delle stringhe è una attività elementare che si deve imparare al più presto, altrimenti non si va da nessuna parte, nè con asp, con aspx o javascript
    Pietro

  4. #4
    Utente di HTML.it L'avatar di 99eros9
    Registrato dal
    Jan 2003
    Messaggi
    2,637
    Io ti consiglio di ricercare il metodo statico Matches della classe Regex ed applicarlo... ci dovrebbe essere qualche esempio in giro da implementare.
    Spesso le stringhe vengono sottovalutate e ci si dimentica che sono tipi di riferimento con una speciale gestione propensa a consumare notevoli quantità di memoria.
    Tala är silver men tiga är guld!
    Pubblica il tuo curriculum
    Segnala il tuo sito
    Ancl

  5. #5
    Originariamente inviato da pietro09
    se mi posso permettere, data la struttura della stringa:

    "Verdura=Insalata;Frutta=Pesca;Carne=Pollo;Pesce=M erluzzo"

    vedo che si può scomporre come vettore di elementi chiave-valore. In altri termini io ho la chiave Verdura di valore Insalata, la chiave Frutta di valore Pesca... etc.
    Se è così (uso pseudo codice) io farei:

    1) ricavo il vettore delle stringhe chiave-valore usando il metodo split col separatore ;

    2) creo un oggetto dizionario usando il tipo generic

    3) per ogni elemento del vettore trovato prima uso di nuovo splic con separatore = e ricavo la chiave ed il valore

    4) aggiungo al dizionario un nuovo elemento di data chiave e valore trovato prima

    5) usando i metodi del dizionario è banale sapere se esiste per esempio la chiave dolce e se sì, sapere quale.

    6) non funziona se ci sono chiavi doppie, ad esempio se la stringa contiene per esempio tre tipi di carne.

    7) in questo caso forse userei una tabella con i campi: ID, Elemento, Tipo

    8) la manipolazione delle stringhe è una attività elementare che si deve imparare al più presto, altrimenti non si va da nessuna parte, nè con asp, con aspx o javascript
    Pensi di averlo aiutato così?
    Hai elencato 8 punti... metti almeno un po di codice no?
    Io ho trovato una soluzione semplice ed immediata, ed almeno del codice l'ho scritto...

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Carissimo trancegate, perchè mi rimproveri? :master: Parola d'onore che non ho capito . Ma vediamo un poco:

    la soluzione proposta da 99eros9 credo che sia la migliore: nulla è più potente delle espressioni regolari. Ma, dal mio punto di vista, certe volte è "troppo potente" e non adatta a chi non conosce l'ABCD della programmazione. Perciò, meglio prima imparare a conoscere bene la classe string per poi passare con gradualità alle espressioni regolari.

    Per quanto mi riguarda, ho scritto una paginetta di prova per implementare quello che ho scritto. Purtroppo l'ho cancellata perchè ho pensato fosse meglio dare indicazioni generali senza arrivare al grado di dettaglio che tu richiedi. Questo perchè credo che a volte, sia più opportuno dare una traccia per poi invitare chi scrive a studiare un poco in modo da imparare di più ed avere più gratificazione.

    Per quanto riguarda il tuo codice, non commento: è una tua liberissima e validissima soluzione del problema. Io l'ho messa in evidenza non certo per criticare la tua soluzione, ma solo per la mia abitudine di evidenziare tutto nelle risposte

    Ma lasciami fare qualche considerazione:
    quando mi arriva una stringa del tipo:
    "Verdura=Insalata;Frutta=Pesca;Carne=Pollo;Pesce=M erluzzo"

    penso che sia una serializzazione fatta nel client per spedire dati in forma compatta al server. Se questo è vero, nel server bisogna semplicemente deserializzare. E per fare questo bisogna conoscere le regole della serializzazione impiegata. Perciò, non credo proprio che si tratti semplicemente di cercare "Merluzzo" o "Pollo", ma che la faccenda sia un poco più articolata.
    Conoscendo le regole impiegate con le espressioni regolari si risolve alla grande. Non conoscendo le espressioni regolari, lo "split" ci aiuta parecchio.
    Ciao
    Pietro

  7. #7
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    ma la carne ed il pesce non dovrebbero avere un indice piu' basso della verdura e della frutta nella sequenza ?

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da djciko
    ma la carne ed il pesce non dovrebbero avere un indice piu' basso della verdura e della frutta nella sequenza ?

    Ma che differenza fa? Non va a finire tutto nello stesso posto
    Pietro

  9. #9
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Originariamente inviato da pietro09
    Ma che differenza fa? Non va a finire tutto nello stesso posto

    ?? che c'entra il mio PacMan ?

  10. #10
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da djciko
    ?? che c'entra il mio PacMan ?
    mi è sfuggito dalla tastiera e poi non so come farlo comparire
    Pietro

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.