En las secciones anteriores aprendimos cómo usar el método split() de la clase String para descomponer una cadena. En esta sección aprenderemos cómo usar el objeto StringTokenizer para descomponer una cadena. A diferencia del método split(), el objeto StringTokenizer. no utiliza expresiones regulares como marca separadora.
En primer lugar, necesitamos conocer un concepto: los símbolos del lenguaje . Los llamados símbolos del lenguaje significan que cuando analizamos una cadena, la descomponemos en palabras que se pueden usar de forma independiente, y estas palabras se denominan símbolos del lenguaje.
Por ejemplo, para la cadena De nada, si se utilizan espacios como marca delimitadora de la cadena, entonces la cadena tiene tres palabras, es decir, tres símbolos del idioma. Para la cadena Usted, de nada, si la coma se usa como marca delimitadora de la cadena, entonces la cadena también tiene tres símbolos de idioma.
Cuando analizamos una cadena y la descomponemos en palabras que se pueden usar de forma independiente, podemos usar la clase StringTokenizer en el paquete java.util, que tiene dos constructores de uso común:
Construya un analizador para la cadena s, utilizando las marcas delimitadoras predeterminadas , es decir, caracteres de espacio (varios espacios se consideran un espacio), caracteres de avance de línea, caracteres de retorno de carro, caracteres de tabulación y caracteres de avance como marcas de separación.
Construye un analizador para la cadena s. Los caracteres del parámetro delim se utilizan como delimitadores.
Nota : cualquier combinación de delimitadores sigue siendo un delimitador.
Por ejemplo:
StringTokenizerfenxi=newStringTokenizer(eres;bienvenido);StringTokenizerfenxi=newStringTokenizer(eres;bienvenido,,;);
Llame a un objeto StringTokenizer como analizador de cadenas. Un analizador puede usar el método nextToken () para obtener los símbolos del idioma en la cadena uno por uno. Cada vez que se llama a nextToken (), se obtendrá el siguiente símbolo del idioma en la cadena. Cuando se obtiene un símbolo de idioma, el valor de la variable de conteo en el analizador de cadenas se reduce automáticamente en 1. El valor inicial de la variable de conteo es igual al número de palabras en la cadena.
Por lo general, se usa un bucle while para obtener símbolos de idioma uno por uno. Para controlar el bucle, puede usar el método hasMoreTokens () en la clase StringTokenizer, siempre que haya símbolos de idioma en la cadena, es decir, el valor. de la variable de conteo es mayor que 0, este método devuelve verdadero; de lo contrario, devuelve falso. Además, puede hacer que el analizador llame al método countTokens() en cualquier momento para obtener el valor de la variable de conteo en el analizador.
Por ejemplo:
importjava.util.*;publicclassMain{publicstaticvoidmain(Stringargs[]){Strings=welcometotcpp(gracias),nicemeetyou;StringTokenizerfenxi=newStringTokenizer(s,(),);intnumber=fenxi.countTokens(); while(fenxi.hasMoreTokens() ){Stringstr=fenxi.nextToken();System.out.print(str+);}System.out.println(Total de palabras: +número+);}}
Los resultados de ejecución son los siguientes:
bienvenidotodotcppgraciasun placer conocerte total de palabras: 9