Ottieni il conteggio parole di una stringa in Java
-
Usa
StringTokenizer
per contare le parole in una stringa in Java -
Utilizzare
split()
ed espressioni regolari per contare le parole in una stringa in Java - Ottieni il numero di volte in cui una parola viene ripetuta in una stringa in Java
In questo articolo, faremo luce su come contare il numero di parole in una stringa in Java e sui diversi modi per ottenerlo.
Usa StringTokenizer
per contare le parole in una stringa in Java
La classe StringTokenizer
in Java ci consente di suddividere una stringa in più token. I metodi in questa classe non distinguono tra stringhe, identificatori e numeri tra virgolette, né riconoscono o ignorano i commenti. I caratteri che separano i token (delimitatori) possono essere specificati al momento della creazione o in base al token.
La classe StringTokenizer
non conta automaticamente gli spazi e le tabulazioni, quindi viene gestita da 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));
}
}
Produzione:
Word count without delimiter: 6
Word count: 4
Qui, abbiamo creato stringTokenizer1
passando una stringa nel costruttore, prende il delimitatore predefinito mentre per stringTokenizer2
viene passato un delimitatore personalizzato per separare i token. Il primo approccio conta i trattini mentre il secondo no.
Utilizzare split()
ed espressioni regolari per contare le parole in una stringa in Java
Il metodo split(String regex)
in Java accetta un’espressione regolare e spezza la stringa data che corrisponde all’espressione regolare e restituisce un array di stringhe.
L’espressione regolare che usiamo qui è \\s+
che separa lo spazio bianco dalla stringa o in altre parole divide la stringa data intorno allo spazio bianco. Il numero di parole nella stringa è uguale alla lunghezza dell’array di stringhe words
che possiamo ottenere chiamando length
su di esso. L’output mostra il numero di parole in 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);
}
}
Produzione:
Word Count is: 7
Ottieni il numero di volte in cui una parola viene ripetuta in una stringa in Java
Possiamo calcolare il numero di volte che una parola viene ripetuta nella stringa data. Qui randomText
è una stringa in cui dobbiamo trovare quante volte viene ripetuta la parola blue
. Per questo, prendiamo una variabile times
di tipo int
e la inizializziamo a 0. Eseguiamo un cicli for
da 0 alla lunghezza di randomText
.
Il metodo startsWith()
confronta se la stringa inizia con i caratteri della stringa data. Per i = 0
il metodo randomText.substring(0)
ottiene una sottostringa all’indice 0 e controlla se startsWith("blue")
e se corrisponde, incrementerà times
di 1; altrimenti non aumenterà.
Allo stesso modo, controlla il resto della lunghezza e stampa il numero di volte in cui la parola è stata ripetuta nella stringa data come output.
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");
}
}
Produzione:
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