Obtenir le nombre de mots d'une chaîne en Java
-
Utilisez
StringTokenizer
pour compter les mots dans une chaîne en Java -
Utilisez
split()
et une expression régulière pour compter les mots dans une chaîne en Java - Obtenir le nombre de répétitions d’un mot dans une chaîne en Java
Dans cet article, nous allons vous expliquer comment compter le nombre de mots dans une chaîne en Java et les différentes manières d’y parvenir.
Utilisez StringTokenizer
pour compter les mots dans une chaîne en Java
La classe StringTokenizer
en Java nous permet de diviser une chaîne en plusieurs jetons. Les méthodes de cette classe ne font pas de distinction entre les chaînes, identificateurs et nombres entre guillemets, et ne reconnaissent ni ignorent les commentaires. Les caractères qui séparent les jetons (délimiteurs) peuvent être spécifiés soit au moment de la création, soit sur une base par jeton.
La classe StringTokenizer
ne compte pas automatiquement les espaces et les tabulations donc elle est gérée seule.
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));
}
}
Production:
Word count without delimiter : 6 Word count : 4
Ici, nous avons créé stringTokenizer1
en passant une chaîne dans le constructeur, il prend le délimiteur par défaut alors que pour stringTokenizer2
le délimiteur personnalisé pour séparer les jetons est passé. La première approche compte les tirets tandis que la seconde ne le fait pas.
Utilisez split()
et une expression régulière pour compter les mots dans une chaîne en Java
La méthode split(String regex)
en Java prend une expression régulière et casse la chaîne donnée correspondant à l’expression régulière et retourne un tableau de chaînes.
L’expression régulière que nous utilisons ici est \\s+
qui sépare l’espace blanc de la chaîne ou en d’autres termes, elle divise la chaîne donnée autour d’un espace blanc. Le nombre de mots dans la chaîne est égal à la longueur du tableau de chaînes words
que l’on peut obtenir en appelant length
dessus. La sortie affiche le nombre de mots dans 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);
}
}
Production:
Word Count is: 7
Obtenir le nombre de répétitions d’un mot dans une chaîne en Java
Nous pouvons calculer le nombre de fois qu’un mot est répété dans la chaîne donnée. Ici randomText
est une chaîne dans laquelle nous devons trouver combien de fois le mot blue
est répété. Pour cela, nous prenons une variable times
de type int
et l’initialisons à 0. Lancez une boucle for
de 0 à la longueur du randomText
.
La méthode startsWith()
compare si la chaîne commence par les caractères de la chaîne donnée. Pour i = 0
, la méthode randomText.substring(0)
obtient la sous-chaîne à l’index 0 et vérifie si elle startsWith("blue")
et si elle correspond alors elle incrémentera times
de 1; sinon, il n’augmentera pas.
De même, il vérifie le reste de la longueur et imprime le nombre de fois que le mot a été répété dans la chaîne donnée en sortie.
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");
}
}
Production:
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