Ciao a tutti, devo fare un piccolo programma che controlla quante volte vengono ripetute le parole in un testo.
Ci sto provando da giorni ma mi incarto un casino... potreste darmi una mano?
Vi posto il codice con l'ennesimo tentativo sbagliato:
codice:
import prog.io.ConsoleInputManager; 
import prog.io.ConsoleOutputManager;

public class RicorrenzeStringa{
	public static void main(String[] args){
		ConsoleOutputManager video = new ConsoleOutputManager();
		ConsoleInputManager tastiera = new ConsoleInputManager();
		
		String testo = tastiera.readLine("\nInserisci un testo (solo lettere): ");
		//sopra la panca la capra canta sotto la panca la capra crepa

		String []dizionario = testo.split(" ");
		String []ricorrenze = new String[testo.length()];
		int []volte_ricorrenza = new int[testo.length()];
		int j = 0, k = 0;
		
		for(int i = 0; i < dizionario.length; i++){
			while(j < ricorrenze.length && ricorrenze[j] != dizionario[i]) j++; // Si ferma quando trova l'indice di un elemento uguale
			
			if (j < ricorrenze.length) volte_ricorrenza[j]++; // se è stato trovato un elemento uguale incrementa il numero di volte che viene ripetuto
			else{ //se no trova uno spazio vuoto dove inserire la nuova parola
				while(k < ricorrenze.length && ricorrenze[k] != null) k++;
				ricorrenze[k] = dizionario[i];
				volte_ricorrenza[k]++; // e aumenta il numero di volte che è ripetuta (essendo di sicuro volte_ricorrenza[k] == null il valore diventerà 1)
			}
		}
		
		for(int i = 0; i < ricorrenze.length; i++){
			if (ricorrenze[i] != null) video.println(ricorrenze[i]+": "+volte_ricorrenza[i]);
		}
	}
}
Questo come già detto non funziona... restituisce tutte le parole con una sola ricorrenza

Aiuto please ç_ç