Obtener el recuento de palabras de una cadena en Java
-
Utilice
StringTokenizer
para contar palabras en una cadena en Java -
Utilice
split()
y expresiones regulares para contar palabras en una cadena en Java - Obtener el número de veces que se repite una palabra en una cadena en Java
En este artículo, vamos a arrojar algo de luz sobre cómo contar la cantidad de palabras en una cadena en Java y las diferentes formas de lograrlo.
Utilice StringTokenizer
para contar palabras en una cadena en Java
La clase StringTokenizer
en Java nos permite dividir una cadena en múltiples tokens. Los métodos de esta clase no diferencian entre cadenas entre comillas, identificadores y números, ni reconocen ni omiten comentarios. Los caracteres que separan los tokens (delimitadores) pueden especificarse en el momento de la creación o por token.
La clase StringTokenizer
no cuenta los espacios en blanco y las pestañas automáticamente, por lo que se maneja por sí sola.
import java.util.StringTokenizer;
public class WordCount {
public static void main(String args[]) {
String mydelim = " - ";
String myString = "The sky - - is blue!";
StringTokenizer stringTokenizer1 = new StringTokenizer(myString);
StringTokenizer stringTokenizer2 = new StringTokenizer(myString, mydelim);
int tokensCount1 = stringTokenizer1.countTokens();
int tokensCount2 = stringTokenizer2.countTokens();
System.out.println("Word count without delimiter: " + String.valueOf(tokensCount1));
System.out.println("Word count: " + String.valueOf(tokensCount2));
}
}
Producción :
Word count without delimiter: 6
Word count: 4
Aquí, hemos creado stringTokenizer1
pasando una cadena en el constructor, toma un delimitador predeterminado mientras que para stringTokenizer2
se pasa un delimitador personalizado a tokens separados. El primer método cuenta los guiones, mientras que el segundo no.
Utilice split()
y expresiones regulares para contar palabras en una cadena en Java
El método split(String regex)
en Java toma una expresión regular y rompe la cadena dada que coincide con la expresión regular y devuelve un array de cadenas.
La expresión regular que usamos aquí es \\s+
que separa el espacio en blanco de la cadena o, en otras palabras, divide la cadena dada entre espacios en blanco. El número de palabras en la cadena es igual a la longitud del array de cadenas palabras
que podemos obtener llamando a length
. La salida muestra el número de palabras en myStr
.
public class WordCount {
public static void main(String args[]) {
String myStr = "the butcher's wife, she was from Montreal";
String[] words = myStr.split("\\s+");
System.out.println("Word Count is: " + words.length);
}
}
Producción :
Word Count is: 7
Obtener el número de veces que se repite una palabra en una cadena en Java
Podemos calcular el número de veces que se repite una palabra en la cadena dada. Aquí, randomText
es una cadena en la que necesitamos encontrar cuántas veces se repite la palabra blue
. Para ello, tomamos una variable times
de tipo int
y la inicializamos a 0. Ejecutamos un bucle for
desde 0 hasta la longitud del randomText
.
El método startsWith()
compara si la cadena comienza con los caracteres de la cadena dada. Para i = 0
el método randomText.substring(0)
obtiene una subcadena en el índice 0 y comprueba si startsWith("blue")
y si coincide, incrementará times
en 1; de lo contrario, no aumentará.
De manera similar, verifica el resto de la longitud e imprime el número de veces que se repitió la palabra en la cadena dada como salida.
public class WordCount {
public static void main(String args[]) {
String randomText = "The sky is blue it meets the sea which is also blue";
String text = "blue";
int times = 0;
for (int i = 0; i < randomText.length(); i++) {
if (randomText.substring(i).startsWith(text)) {
times++;
}
}
System.out.println(randomText + " contains " + text + " " + times + " times");
}
}
Producción :
The sky is blue it meets the sea which is also blue contains blue 2 times
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn