手元にたくさんの言葉があります。私がしなければならないことは、それらを保存して、すべての単語を数えることです。元のデータには重複する単語が含まれている可能性があります。まず、Set を使用したいので、異なる単語のみを取得することを保証できます。しかし、どうすれば彼らの時間を数えることができますか? 「賢い」アイデアを持っている人はいますか?
質問する
691 次
3 に答える
3
MultiSet
Guava ライブラリから使用できます。
http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/Multiset.html
于 2013-03-14T02:25:05.867 に答える
2
Map を使用してこの問題を解決できます。
String sample = " I have a problem here. I have a lot of words at hand. What I need to do is to save them and count every different word. The original data may contains duplicate words.Firstly, I want to use Set, then I can guarantee that I only get the different wrods. But how can I count their times? Is there someone having any clever idea?";
String[] array = sample.split("[\\s\\.,\\?]");
Map<String,Integer> statistic = new HashMap<String,Integer>();
for (String elem:array){
String trimElem = elem.trim();
Integer count = 0;
if(!"".equals(trimElem)){
if(statistic.containsKey(trimElem)){
count = statistic.get(trimElem);
}
count++;
statistic.put(trimElem,count);
}
}
于 2013-03-14T02:40:51.167 に答える
1
おそらく、ハッシュを使用できます。Javaでは、HashMap(またはHashSet?)です。すべての単語をハッシュできます。その単語がハッシュされている場合は、それに関連付けられている値を1つ増やします。これがアイデアです。
于 2013-03-14T02:57:12.430 に答える