Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 33

Discussione: funzione tokenizer

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    189

    funzione tokenizer

    vorrei chiedervi una cosa sulla funziona stringTokenizer, in pratica se io uso un solo delimitatore mi divide le stringhe perfettamente, ma se io ne uso 2 non funziona!! qualcuno sa come si mettono 2 delimitatori.. nel mio caso io devo togliere ( = e \r ) grazie



    codice:
    String temp = valore3;
    StringTokenizer st = new StringTokenizer(temp,"\\r");
    while (st.hasMoreTokens()) {
    System.out.println(st.nextToken());
    }

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: funzione tokenizer

    Originariamente inviato da liga_87
    vorrei chiedervi una cosa sulla funziona stringTokenizer, in pratica se io uso un solo delimitatore mi divide le stringhe perfettamente, ma se io ne uso 2 non funziona!! qualcuno sa come si mettono 2 delimitatori.. nel mio caso io devo togliere ( = e \r ) grazie
    Con StringTokenizer i delimitatori si indicano nel secondo parametro del costruttore con un String. Nella stringa ci possono essere più caratteri, ognuno è un delimitatore singolo. Se la stringa è "+-", non "spezza" quando trova + seguito da - .... invece spezza quando trova un + oppure un -. E se i delimitatori sono contigui li tratta come uno solo ai fini del token (es. "aa+-+bb", spezza comunque "aa" e "bb").
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    http://download.oracle.com/javase/1....Tokenizer.html

    StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code. It is recommended that anyone seeking this functionality use the split method of String or the java.util.regex package instead.
    Il metodo split di String fa di sicuro al caso tuo.
    "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

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Originariamente inviato da Pastore12
    http://download.oracle.com/javase/1....Tokenizer.html



    Il metodo split di String fa di sicuro al caso tuo.
    lo split già glielo avevo suggerito ieri e aveva posto la stessa domanda.
    L'uso di regex (che consiglia anche la sun), visto che in questi gg mi sono fatta un'idea del livello di preparazione di chi fa la domanda, al momento lo sconsiglierei.
    Per roba semplice split resta la soluzione migliore

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    189
    valia, al contrario di quello che pensavi tu di me, io come vedi sto studiando e sto facendo milioni di prove!! e credemi il mio livello sara' anche basso, ma sto imparando un bel po' di cose anche grazie a voi..

    io ho provato a usare split, mi spezza perfettamente la stringa, ma quando inserisco 2 delimitatori nn funziona!!! ieri infatti avevo chiesto come si inseriscono 2 delimitatori, cosa che nei manuali nn ho trovato!!

  6. #6
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Non prendere quella di valia come una offesa...

    Le regular expression sono complicate, ma non troppo se ci si limita a casi semplici.
    Nel tuo caso 2 delimitatori non sono un dramma... certo, capire la logica e la teoria che ci sta sotto richiede un certo tempo... io l'ho vista in un corso universitario di informatica teorica. E di quel corso ricordo solo grandi dormite...

    comunque, partendo dalla documentazione di String sul metodo split trovi un link alla pagina "pattern", che puoi provare a leggere.

    Supponi di avere la stringa "capra&e:cavoli", per spezzare questa nelle parole {"capra", "e", "cavoli"} devi usare una regex come "[&:]". Tutti i caratteri tra parentesi quadre diventano i tuoi delimitatori. Occhio però ai caratteri speciali.



    In alternativa puoi cavartela anche senza regex, prima spezzi in token per un delimitatore, poi spezzi ciascun token per il secondo delimitatore.
    "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

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    non era un'offesa infatti la mia, la regex non è affatto facile da scrivere e per questo dico che al momento te la sconsiglio (anche se resta la migliore).

    Per quanto riguarda la regola, devi fare il conto che ogni volta che trovi la sequenza splitti, a meno che non vai a specificare che vuoi almeno uno dei delimitatori che vai a specificare, ma questo lo fai con la regex.

    Per quanto riguarda il tuo caso (riportato con \n\r) penso che sia un'annosa questione riguardante i text editor (quali caratteri inseriscono ecc ecc) che crea problemi nei parser

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    189
    quindi conviene usare la split??? se ho 2 caratteri \n\r

    codice:
     String delimiter = "\\n";
      
      temp = str.split(delimite);
      for(int i =0; i < temp.length ; i++)
     // System.out.println(temp[i]);
    cosi non funziona

  9. #9
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Scusa ma non capisco...

    Se nel testo hai

    testo = "hello\n\rworld\n\r!!"

    testo.split("\\n\\r")

    ti restituisce {"hello", "world", "!!"}

    E ovviamente funziona anche lo StringTokenizer senza tanti problemi, hai una stringa di testo e una col delimitatore.

    Solo che devi scrivere:

    StringTokenizer st = new StringTokenizer(temp,"\n\r");

    non quello che avevi scritto nel primo messaggio:

    StringTokenizer st = new StringTokenizer(temp,"\\r");
    "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

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    189
    pastore ciao, ho provato
    testo.split("\\n\\r")


    ma nn funziona, mi ritorna di nuovo il testo con \n e \r

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