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

    [JAVA]Uso della classe StringTokenizer

    E' possibile stabilire i criteri con cui effettuare la suddivisione in token??
    Di default il tokenizer separa la stringa che viene passata, ad ogni spazio. Vedendo nelle api però c'è questo esempio:
    codice:
    StringTokenizer(String str, String delim)
    dove delim dovrebbe essere il "delimitatore" per la separazione.
    Ho provato a valorizzarlo con una lettera, ad esempio "a", ma non riesco a farlo funzionare.
    Questa funzione mi serve per cercare tutte le parole presenti in un testo, ponendo quindi attenzione ai segni di punteggiatura e, ovviamente, agli spazi tra una parola e l'altra. in questo caso, quali caratteri dovrei mettere come delimitatore??

    grazie.

  2. #2
    Utente di HTML.it L'avatar di dannie
    Registrato dal
    Aug 2005
    Messaggi
    336
    Che io sappia con il StringTokenizer (precisamente con il costruttore che hai indicato tu) puoi specificare la stringa delimitatore, ma deve esserre appunto una sequenza di caratteri ben precisa (non: virgola o spazio o...). Se vuoi separare le parole in base ad alcuni possibili caratteri, ti consiglierei di fare qualche tentativo con la
    split(String regex), che permette di specificare un'espressione regolare come delimitatore!

  3. #3
    come sempre grazie per l'aiuto dannie.
    Ho fatto diverse prove e ho constatato come mettendo una intera stringa di delimitatori (quindi virgola, spazio, punto e virgola, due punti.....) la separazione in token avviene correttamente.
    Pertanto preferisco continuare ad usare la StringTokenizer parametrizzata visto che comunque funziona e l'esame si avvicina....

  4. #4
    Utente di HTML.it L'avatar di dannie
    Registrato dal
    Aug 2005
    Messaggi
    336
    Beh, grazie a te per l'info allora, onestamente non pensavo che si potesse fare!
    Ciao, alla prossima!

  5. #5
    Utente di HTML.it L'avatar di bobc
    Registrato dal
    Feb 2004
    Messaggi
    245
    Così dovrebbe andare:
    codice:
    String testo="bla bla bla";
    StringTokenizer st=new StringTokenizer(testo," ",false);
    //suddivisione token
    while(st.hasMoreTokens()){
      System.out.println(st.nextToken());
    }
    ...
    dove con "false" non si tiene conto degli spazi, ma solo delle parole, mentre se all'ultimo parametro del costruttore di StringTokenizer metti true, allora si tiene anche conto degli spazi: in temini tecnici uno spazio sarà ach'esso considerato un token.

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.