importar java.util.ArrayList;
importar java.util.Collections;
importar java.util.HashMap;
importar java.util.List;
importar java.util.Map;
classe pública PalavrasEstatísticas {
classe Obj{
contagem interna;
Obj(int contagem){
isto.contagem = contagem;
}
}
public List<WordCount> estatísticas(String palavra) {
List<Contagem de palavras> rs = new ArrayList<Contagem de palavras>();
Mapa <String,Obj> mapa = new HashMap<String,Obj>();
if(palavra == nulo) {
retornar nulo;
}
palavra = palavra.toLowerCase();
palavra = palavra.replaceAll("'s", "");
palavra = palavra.replaceAll(",", "");
palavra = palavra.replaceAll("-", "");
palavra = palavra.replaceAll("//.", "");
palavra = palavra.replaceAll("'", "");
palavra = palavra.replaceAll(":", "");
palavra = palavra.replaceAll("!", "");
palavra = palavra.replaceAll("/n", "");
String [] wordArray = word.split(" ");
for (String palavra simples: wordArray) {
palavra simples = palavra simples.trim();
if (simpleWord != null && !simpleWord.equalsIgnoreCase("")) {
Obj cnt = map.get(simpleWord);
if (cnt!=nulo) {
cnt.contagem++;
}outro {
map.put(simpleWord, novo Obj(1));
}
}
}
for (chave de string: map.keySet()) {
Contagem de palavras wd = new Contagem de palavras(chave,map.get(chave).contagem);
rs.add(wd);
}
Collections.sort(rs, new java.util.Comparator<WordCount>(){
@Substituir
public int comparar(Contagem de palavras o1, Contagem de palavras o2) {
resultado interno = 0;
if (o1.getCount() > o2.getCount()) {
resultado = -1;
}else if (o1.getCount() <o2.getCount()) {
resultado = 1;
}outro {
int strRs = o1.getWord().compareToIgnoreCase(o2.getWord());
if (strRs > 0) {
resultado = 1;
}outro {
resultado = -1;
}
}
resultado de retorno;
}
});
retornar rs;
}
public static void main(String args[]) {
String word = "O Pinterest pode ser o sonho de um profissional de marketing - esse site é amplamente usado para selecionar produtos";
EstatísticasdePalavras s = new EstatísticasdePalavras();
Lista<ContagemdePalavras> rs = s.statistics(palavra);
for (Contagem de palavras palavra1: rs) {
System.out.println(palavra1.getWord()+"*"+palavra1.getCount());
}
}
}