Esercizio 26 – Ricerca e conteggio di parole
- Novembre 02, 2010
- by
- Donatantonio
Scrivere e testare un programma che data una parola w ed un testo t conta il numero di occorrenze di w in t.
La classe ContaOccorrenze.java:
public class ContaOccorrenze {
String testo;
// Il costruttore inizializza il testo sul quale effettuare la ricerca
public ContaOccorrenze(String txt){
this.testo = txt;
}
// Il metodo conta acquisisce in input la parola da cercare
public int conta(String parola){
// Calcolo la lunghezza del testo e della parola
int lunghezza_parola = parola.length();
int lunghezza_testo = testo.length();
// Definisco due variabili: un indice per il testo e un contatore
int indice = 0;
int numeroParole = 0;
// Fin quando l'indice del testo è valido
while (indice <= lunghezza_testo-lunghezza_parola){
// Controllo se la substring del testo è uguale alla parola
if(testo.subSequence(indice, indice+lunghezza_parola).equals(parola)){
numeroParole++;
}
// L'indice aumenta ad ogni iterazione
indice++;
}
return numeroParole;
}
}
La classe di test ContaParola.java:
import java.util.Scanner;
public class ContaParola
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
// Prendo in input un testo
System.out.println("Scrivi un testo: ");
String testo = in.nextLine();
// Prendo in input una lettera da cercare nel testo
System.out.println("Dammi una parola da ricercare e conteggiare: ");
String parola = in.nextLine();
// Istanzio l'oggetto ContaOccorrenze
ContaOccorrenze contatore = new ContaOccorrenze(testo);
// Invovo il metodo che restituisce il numero di occorrenze di parola in testo
int occorrenze = contatore.conta(parola);
System.out.println("La parola è presente : ");
System.out.println(occorrenze + " volte");
}
}

