Nas seções anteriores, aprendemos como usar o método split() da classe String para decompor uma string. Nesta seção, aprenderemos como usar o objeto StringTokenizer para decompor uma string. não usa expressões regulares como marca separadora.
Em primeiro lugar, precisamos conhecer um conceito - símbolos de linguagem . Os chamados símbolos de linguagem significam que quando analisamos uma string, decompomos a string em palavras que podem ser usadas independentemente, e essas palavras são chamadas de símbolos de linguagem.
Por exemplo, para a string De nada, se espaços forem usados como marca delimitadora da string, então a string terá três palavras, ou seja, três símbolos de linguagem. Para a string De nada, se a vírgula for usada como marca delimitadora da string, então a string também terá três símbolos de idioma.
Quando analisamos uma string e a decompomos em palavras que podem ser usadas de forma independente, podemos usar a classe StringTokenizer no pacote java.util, que possui dois construtores comumente usados:
Construa um analisador para a string s, usando as marcas delimitadoras padrão , ou seja, caracteres de espaço (vários espaços são considerados como um espaço), caracteres de alimentação de linha, caracteres de retorno de carro, caracteres de tabulação e caracteres de alimentação como marcas de separação.
Constrói um analisador para a string s. Os caracteres no parâmetro delim são usados como delimitadores.
Nota : Qualquer combinação de delimitadores ainda é um delimitador.
Por exemplo:
StringTokenizerfenxi=newStringTokenizer(você é bem-vindo);StringTokenizerfenxi=newStringTokenizer(você,é;bem-vindo,,;);
Chame um objeto StringTokenizer de analisador de string. Um analisador pode usar o método nextToken() para obter os símbolos de idioma na string, um por um. um símbolo de linguagem é obtido, o valor da variável de contagem no analisador de string é automaticamente decrementado em 1. O valor inicial da variável de contagem é igual ao número de palavras na string.
Normalmente, um loop while é usado para obter símbolos de linguagem um por um. Para controlar o loop, você pode usar o método hasMoreTokens() na classe StringTokenizer, desde que haja símbolos de linguagem na string, ou seja, o valor. da variável de contagem for maior que 0, este método retorna verdadeiro, caso contrário, retorna falso. Além disso, você pode fazer com que o analisador chame o método countTokens() a qualquer momento para obter o valor da variável de contagem no analisador.
Por exemplo:
importjava.util.*;publicclassMain{publicstaticvoidmain(Stringargs[]){Strings=welcometodotcpp(obrigado),nicetomeetyou;StringTokenizerfenxi=newStringTokenizer(s,(),);intnumber=fenxi.countTokens();while(fenxi.hasMoreTokens() ){Stringstr=fenxi.nextToken();System.out.print(str+);}System.out.println(Total de palavras: +número+);}}
Os resultados da execução são os seguintes:
bem-vindotodotcppthankyounicetomeetyou total de palavras: 9