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:
Questo come già detto non funziona... restituisce tutte le parole con una sola ricorrenzacodice: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]); } } }![]()
Aiuto please ç_ç