Quote Originariamente inviata da Daniele07 Visualizza il messaggio
Scrivere un programma java capace di individuare le parole che compongono un testo assegnato, dove, per parola si intende un insieme di più di 3 caratteri, una volta individuate le parole valide, vedere la frequenza con la quale esse si ripetono all'interno della stringa, esprimendo questo valore in percentuale, il valore effettivo ed individuare la moda.
metodi applicabili: replaceAll, split
Nessuno, credo, ti scriverà il codice completo (nemmeno io, anche perché ho sempre poco tempo). Ma qualche indizio da darti, è ok, ovviamente.

Visto che parli di split (e non del find di java.util.regex.Matcher) deduco che l'unica opzione accettabile sia quella di "spezzare" innanzitutto il testo usando spazi (e simboli di punteggiatura magari) come separatori al fine di ottenere i singoli token che sono le parole.
Per questo basta appunto stringa.split(" ...regex... ") con una apposita regex che devi ideare tu ed ottieni un bel array con le parole.

A quel punto fai un ciclo sulle parole e consideri solo quelle con più di 3 caratteri (banale test sulla lunghezza). A questo punto devi conteggiare le occorrenze di ciascuna parola. La cosa più logica è una "mappa" in cui la chiave è la parola mentre il valore è un "contatore" (numero intero, chiaramente).

Una volta esaminate tutte le parole, hai una mappa che contiene es. "ciao"-->1, "prova"-->2 ecc... A quel punto calcolare percentuali e altro è abbastanza lineare e semplice.

Ti è servita questa spiegazione? Lo so che è abbastanza generale ma da questo devi partire.