Boa Noite!!
Estou lendo uma frase e quero saber o número de ocorrência de cada
palavra.
Por favor postem exemplos.
Att,
Boa Noite!!
Estou lendo uma frase e quero saber o número de ocorrência de cada
palavra.
Por favor postem exemplos.
Att,
import java.util.*;
class TabelaFrequencias2 {
/**
* Note que várias palavras podem ter a mesma freqüência. Portanto,
* não podemos usar um Map < Integer, String > e sim um
* Map < Integer, Set < String > >.
*/
public static void main(String[] args) {
String texto = "Considerai os lírios, como eles crescem; não trabalham, nem "
+ " fiam; e digo-vos que nem ainda Salomão, em toda a sua glória, se vestiu "
+ " como um deles. E, se Deus assim veste a erva que hoje está no campo e "
+ " amanhã é lançada no forno, quanto mais a vós, homens de pouca fé? Não "
+ " pergunteis, pois, que haveis de comer, ou que haveis de beber, e não "
+ " andeis inquietos.";
String[] palavras = texto.split ("[ ,;.:?-]+");
Map < String, Integer > tabFreq = new TreeMap < String, Integer > ();
for (int i = 0; i < palavras.length; ++i) {
String palavra = palavras [i];
Integer freq = tabFreq.get (palavra);
if (freq == null) {
freq = 0;
}
tabFreq.put (palavra, freq + 1);
}
System.out.println ("Ordenando (ordem decrescente) por freqüências");
Map < Integer, Set < String > > tabInv = new TreeMap < Integer, Set < String > > (new Comparator <Integer>() {
public int compare (Integer i1, Integer i2) {
return -i1.compareTo (i2);
}
});
// Invertendo a tabela
for (Map.Entry < String, Integer > tab : tabFreq.entrySet()) {
Integer freq = tab.getValue();
String palavra = tab.getKey();
if (!tabInv.containsKey (freq)) {
tabInv.put (freq, new TreeSet < String > ());
}
tabInv.get (freq).add (palavra);
}
for (Integer freq : tabInv.keySet()) {
System.out.println ("Palavras com a freqüência " + freq);
System.out.println (" " + tabInv.get (freq));
}
}
}