O java.util.StringTokenizer class permite que você quebre uma String em tokens. É uma maneira simples de quebrar uma String. É uma classe legada de Java.
Ele não fornece a facilidade de diferenciar números, strings entre aspas, identificadores, etc., como a classe StreamTokenizer. Discutiremos sobre a classe StreamTokenizer no capítulo I/O.
Na classe StringTokenizer, os delimitadores podem ser fornecidos no momento da criação ou um por um aos tokens.
Construtores da classe StringTokenizer
Existem 3 construtores definidos na classe StringTokenizer.
Construtor | Descrição |
---|---|
StringTokenizer(Stringstr) | Ele cria StringTokenizer com string especificada. |
StringTokenizer(String str, String delim) | Ele cria StringTokenizer com string e delimitador especificados. |
StringTokenizer(String str, String delim, boolean returnValue) | Ele cria StringTokenizer com string, delimitador e returnValue especificados. Se o valor de retorno for verdadeiro, os caracteres delimitadores serão considerados tokens. Se for falso, os caracteres delimitadores servem para separar os tokens. |
Métodos da classe StringTokenizer
Os seis métodos úteis da classe StringTokenizer são os seguintes:
Métodos | Descrição |
---|---|
booleano hasMoreTokens() | Verifica se há mais tokens disponíveis. |
String próximoToken() | Ele retorna o próximo token do objeto StringTokenizer. |
String nextToken(String delim) | Ele retorna o próximo token com base no delimitador. |
booleano hasMoreElements() | É o mesmo que o método hasMoreTokens(). |
Objeto nextElement() | É igual a nextToken() mas seu tipo de retorno é Object. |
int contagemTokens() | Ele retorna o número total de tokens. |
Exemplo de classe StringTokenizer
Vamos ver um exemplo da classe StringTokenizer que tokeniza uma string 'meu nome é khan' com base em espaços em branco.
Simples.java
import java.util.StringTokenizer; public class Simple{ public static void main(String args[]){ StringTokenizer st = new StringTokenizer('my name is khan',' '); while (st.hasMoreTokens()) { System.out.println(st.nextToken()); } } }
Saída:
ddl versus dml
my name is khan
O código Java acima demonstra o uso da classe StringTokenizer e seus métodos hasMoreTokens() e nextToken().
Exemplo do método nextToken(String delim) da classe StringTokenizer
Teste.java
java lê arquivo csv
import java.util.*; public class Test { public static void main(String[] args) { StringTokenizer st = new StringTokenizer('my,name,is,khan'); // printing next token System.out.println('Next token is : ' + st.nextToken(',')); } }
Saída:
Next token is : my
Nota: A classe StringTokenizer está obsoleta agora. Recomenda-se usar o método split() da classe String ou da classe Pattern que pertence ao pacote java.util.regex.
Exemplo do método hasMoreTokens() da classe StringTokenizer
Este método retorna verdadeiro se mais tokens estiverem disponíveis no tokenizer String, caso contrário, retorna falso.
StringTokenizer1.java
import java.util.StringTokenizer; public class StringTokenizer1 { /* Driver Code */ public static void main(String args[]) { /* StringTokenizer object */ StringTokenizer st = new StringTokenizer('Demonstrating methods from StringTokenizer class',' '); /* Checks if the String has any more tokens */ while (st.hasMoreTokens()) { System.out.println(st.nextToken()); } } }
Saída:
Demonstrating methods from StringTokenizer class
O programa Java acima mostra o uso de dois métodos hasMoreTokens() e nextToken() da classe StringTokenizer.
Exemplo do método hasMoreElements() da classe StringTokenizer
Este método retorna o mesmo valor do método hasMoreTokens() da classe StringTokenizer. A única diferença é que esta classe pode implementar a interface Enumeration.
StringTokenizer2.java
import java.util.StringTokenizer; public class StringTokenizer2 { public static void main(String args[]) { StringTokenizer st = new StringTokenizer('Hello everyone I am a Java developer',' '); while (st.hasMoreElements()) { System.out.println(st.nextToken()); } } }
Saída:
Hello everyone I am a Java developer
O código acima demonstra o uso do método hasMoreElements().
Exemplo do método nextElement() da classe StringTokenizer
nextElement() retorna o próximo objeto token na String do tokenizer. Ele pode implementar interface de enumeração.
StringTokenizer3.java
import java.util.StringTokenizer; public class StringTokenizer3 { /* Driver Code */ public static void main(String args[]) { /* StringTokenizer object */ StringTokenizer st = new StringTokenizer('Hello Everyone Have a nice day',' '); /* Checks if the String has any more tokens */ while (st.hasMoreTokens()) { /* Prints the elements from the String */ System.out.println(st.nextElement()); } } }
Saída:
Hello Everyone Have a nice day
O código acima demonstra o uso do método nextElement().
Exemplo do método countTokens() da classe StringTokenizer
Este método calcula o número de tokens presentes na String do tokenizer.
StringTokenizer4.java
import java.util.StringTokenizer; public class StringTokenizer3 { /* Driver Code */ public static void main(String args[]) { /* StringTokenizer object */ StringTokenizer st = new StringTokenizer('Hello Everyone Have a nice day',' '); /* Prints the number of tokens present in the String */ System.out.println('Total number of Tokens: '+st.countTokens()); } }
Saída:
par c++
Total number of Tokens: 6
O código Java acima demonstra o método countTokens() da classe StringTokenizer().