Tokenizador de Strings
Parte da seção Lógica e Fluxo do Journey de Java da Coddy — lição 48 de 59.
StringTokenizer é usado para dividir uma string em tokens (partes menores) com base em um delimitador. Por padrão, ele usa espaço em branco como delimitador.
Crie um StringTokenizer com delimitador padrão (espaço):
StringTokenizer st = new StringTokenizer("Hello World Java");Contar e obter tokens:
int count = st.countTokens();
// Obtém o número de tokens
String first = st.nextToken();
// Obtém o próximo tokenApós executar o código acima, as variáveis contêm:
count: 3
first: "Hello"Quando você chama nextToken(), ele remove esse token do tokenizador. O método countTokens() retorna o número de restantes tokens.
StringTokenizer st = new StringTokenizer("Hello World Java");
System.out.println(st.countTokens()); // Imprime: 3
st.nextToken(); // Consome "Hello"
System.out.println(st.countTokens()); // Imprime: 2 (não 3!)
st.nextToken(); // Consome "World"
System.out.println(st.countTokens()); // Imprime: 1Dica: Se você precisar saber a contagem total de tokens, chame countTokens() antes de consumir qualquer token. Use hasMoreTokens() para verificar se há mais tokens disponíveis durante a iteração.
Desafio
FácilCrie um método chamado tokenizeText que recebe dois argumentos:
- Uma String (
text) para tokenizar - Uma String (
delimiter) para dividir
O método deve:
- Criar um StringTokenizer com o texto e delimitador dados
- Retornar uma string contendo a contagem de tokens seguida de cada token em uma nova linha
As mensagens de retorno devem ser:
- Se text for null: retornar "Invalid text"
- Se delimiter for null: usar espaço como delimitador
- Formato: "Token count: X\nToken: token1\nToken: token2\n..."
Folha de consulta
StringTokenizer divide uma string em tokens (partes menores) com base em um delimitador. Por padrão, ele usa espaço em branco como delimitador.
Crie um StringTokenizer com delimitador padrão (espaço):
StringTokenizer st = new StringTokenizer("Hello World Java");Conte e obtenha tokens:
int count = st.countTokens(); // Obtém o número de tokens
String first = st.nextToken(); // Obtém o próximo tokenCrie StringTokenizer com delimitador personalizado:
StringTokenizer st = new StringTokenizer(text, delimiter);Quando você chama nextToken(), ele remove esse token do tokenizer. O método countTokens() retorna o número de tokens restantes.
StringTokenizer st = new StringTokenizer("Hello World Java");
System.out.println(st.countTokens()); // Imprime: 3
st.nextToken(); // Consome "Hello"
System.out.println(st.countTokens()); // Imprime: 2 (não 3!)
st.nextToken(); // Consome "World"
System.out.println(st.countTokens()); // Imprime: 1Dica: Se você precisar saber o número total de tokens, chame countTokens() antes de consumir qualquer token. Use hasMoreTokens() para verificar se há mais tokens disponíveis durante a iteração.
Experimente você mesmo
import java.util.Scanner;
import java.util.StringTokenizer;
public class Main {
public static String tokenizeText(String text, String delimiter) {
// Escreva seu código aqui
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String text = scanner.nextLine();
String delimiter = scanner.nextLine();
if (text.equals("null")) text = null;
if (delimiter.equals("null")) delimiter = null;
System.out.println(tokenizeText(text, delimiter));
}
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Lógica e Fluxo
1Arrays Multidimensionais
Básicos de Arrays 2DAcessando Elementos de Arrays 2DLoops Aninhados com Arrays 2DResumo - Arrays 2DAdição e Subtração de MatrizesArrays EscalonadosArrays 3D e AlémPadrões Comuns de Arrays 2DResumo - Tudo Sobre Arrays2HashMap Parte 1
O que é um HashMap?Declarar um HashMapAcessando ValoresVerificar se a Chave ExisteModificando DicionáriosResumo - HashMap5HashSet Parte 2
Mat. - União de HashSetsMat. - Interseção de HashSetMat. - Diferença de ConjuntosMat. - Diferença SimétricaSubconjuntos e SuperconjuntosIterando Sobre Conjuntos8Operações Avançadas com Strings
Básicos do StringBuilderIntrodução ao StringBufferBásicos de Expressões RegularesEmparelhamento de Padrões com RegexTokenizador de StringsFormatação Avançada de Strings3HashMap Parte 2
Métodos do HashMapIterar com keySet()Iterar com entrySet()HashMap AninhadoResumo - Gerenciar ArmazémResumo - Operações do HashMap6Fluxo de Controle Avançado
Declarações RotuladasExpressão SwitchCorrespondência de PadrõesCláusulas de GuardaResumo - Fluxo de Controle9Projeto - Contador de Palavras Únicas
Entrada e Armazenamento de TextoProcessamento de Palavras