CodeGym /Java Blog /Random-IT /StringTokenizer in Java
John Squirrels
Livello 41
San Francisco

StringTokenizer in Java

Pubblicato nel gruppo Random-IT
La classe StringTokenizer in Java fornisce un metodo String tokenizer per suddividere una stringa in token in base a un delimitatore specificato. La stringa del tokenizer può essere qualsiasi stringa che separa i token, ad esempio una virgola, un punto e virgola o uno spazio bianco. Utilizzando il metodo tokenizer String della classe StringTokenizer , possiamo dividere una stringa nelle sue parti costituenti. Chiamando il metodo nextToken() , possiamo recuperare ciascun token a turno e, utilizzando il metodo hasMoreTokens() , possiamo verificare se sono rimasti altri token. Il metodo length() della classe StringTokenizer può essere utilizzato per ottenere la lunghezza di ciascun token. StringTokenizer String è uno strumento utile per la manipolazione delle stringhe e può essere utilizzato per analizzare file CSV, URL o altri dati basati su testo. La classe StringTokenizer fa parte del pacchetto Java.util e fornisce un modo semplice per suddividere una stringa in token. La classe ha due costruttori, uno che accetta una stringa da tokenizzare e un carattere o una stringa delimitatore, e un altro che accetta gli stessi argomenti oltre a un flag booleano che indica se includere o meno il delimitatore come token. Dopo aver creato un oggetto StringTokenizer , puoi utilizzare i suoi vari metodi per scorrere i token ed eseguire varie operazioni su di essi.

Metodo di tokenizzazione

Il metodo di tokenizzazione è il processo di suddivisione di una stringa in parti o token più piccoli. Questo processo viene eseguito utilizzando un delimitatore, che può essere un carattere o una stringa di caratteri che separa ciascun token. Consideriamo ad esempio la seguente stringa:
String input = "Hello World! How are you today?";
Se vogliamo dividere questa stringa in singole parole, possiamo usare il carattere spazio come delimitatore, in questo modo:
StringTokenizer tokenizer = new StringTokenizer(input, " ");
while (tokenizer.hasMoreTokens()) {
    String token = tokenizer.nextToken();
    System.out.println(token);
}

Produzione

Ciao mondo! Come stai oggi?
In questo esempio creiamo un nuovo oggetto StringTokenizer con la stringa di input e uno spazio come delimitatore. Quindi eseguiamo il looping dei token utilizzando il metodo hasMoreTokens() e recuperiamo ciascun token utilizzando il metodo nextToken() . Infine, stampiamo ciascun token sulla console.

Lunghezza del token

Oltre alle funzionalità di base fornite dal metodo nextToken() , la classe StringTokenizer fornisce anche metodi per recuperare la lunghezza di ciascun token e per recuperare un token specifico per indice. Per ottenere la lunghezza del token corrente, puoi utilizzare il metodo token.length() . Per esempio:
public class StringTokenizerExample {
    public static void main(String[] args) {
        String input = "Hello World! How are you today?";
        StringTokenizer tokenizer = new StringTokenizer(input, " ");
        while (tokenizer.hasMoreTokens()) {
            String token = tokenizer.nextToken();
            System.out.println("Token: " + token + " Length: " + token.length());
        }
    }
}

Produzione

Gettone: Ciao Durata: 5 Gettone: Mondo! Lunghezza: 6 Token: Come Lunghezza: 3 Token: sono Lunghezza: 3 Token: tu Lunghezza: 3 Token: oggi? Lunghezza: 6
In questo esempio, recuperiamo ciascun token come prima ma utilizziamo anche il metodo length() per ottenere la lunghezza di ciascun token, che poi stampiamo sulla console.

Esempio

Diamo un'occhiata a un esempio completo che dimostra come utilizzare la classe StringTokenizer in Java:
public class Example {
    public static void main(String[] args) {
        String input = "John,Doe,123 Main St.,Anytown,USA";
        StringTokenizer tokenizer = new StringTokenizer(input, ",");
        while (tokenizer.hasMoreTokens()) {
            System.out.println(tokenizer.nextToken());
        }
    }
}

Produzione

John Doe 123 Main St. Qualsiasi città degli Stati Uniti
In questo esempio, abbiamo una stringa che rappresenta un elenco di valori separati da virgole. Creiamo un nuovo oggetto StringTokenizer con questa stringa e una virgola come delimitatore. Quindi eseguiamo il looping dei token utilizzando il metodo hasMoreTokens() e recuperiamo ciascun token utilizzando il metodo nextToken() . Infine, stampiamo ciascun token sulla console. Tieni presente che non abbiamo utilizzato il metodo length() in questo esempio, poiché siamo interessati solo ai singoli token stessi.

Classe StreamTokenizer

Sebbene la classe StringTokenizer fornisca un modo semplice per dividere una stringa in token, presenta alcune limitazioni. Ad esempio, non può gestire più delimitatori o diversi tipi di token, come numeri e parole. Se sono necessarie funzionalità di tokenizzazione più avanzate, è possibile utilizzare la classe StreamTokenizer . Questa classe offre maggiore flessibilità e può gestire vari tipi di input. Per rafforzare ciò che hai imparato, ti suggeriamo di guardare una lezione video dal nostro corso Java

Conclusione

In questo articolo abbiamo esplorato la classe StringTokenizer in Java e visto come può essere utilizzata per dividere una stringa in token. Abbiamo anche visto come utilizzare alcuni metodi della classe per eseguire varie operazioni sui token, come ottenere la loro lunghezza e recuperare token specifici per indice. Sebbene la classe StringTokenizer sia uno strumento semplice e utile, presenta dei limiti. Se hai bisogno di funzionalità di tokenizzazione più avanzate, valuta la possibilità di utilizzare la classe StreamTokenizer o una libreria più potente come Apache Commons Lang. Ricorda di considerare sempre le esigenze specifiche del tuo progetto quando decidi quali strumenti e tecniche utilizzare. Con una solida conoscenza delle classi e dei metodi di manipolazione delle stringhe di Java, puoi affrontare con facilità anche le attività di manipolazione delle stringhe più complesse.
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION