各个字母出现的次数
各个单词出现的次数
package sun.rain.amazing;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import org.junit.Test;
/**
*
* 计算单词word 字母letter 出现的次数
*
* @author sunRainAmazing
*
*/
public class StringWordCount {
/**
* 判断字母出现的次数采用map形式
*/
@Test
public void testLetterCountMap(){
String str = "da~daef#2!kild";
str = str.replaceAll("[\\W]", "");
Map<Character, Integer> map = new HashMap<Character, Integer>();
char[] ch = str.toCharArray();
for (int i = 0; i < ch.length; i++) {
if (map.containsKey(ch[i])) {
map.put(ch[i], map.get(ch[i]) + 1);
} else {
map.put(ch[i], 1);
}
}
System.out.println(map);
}
/**
* 统计单词出现的次数 如 hello world Java , hello
* hello 出现 2次
* world 出现1次
* Java 出现1次
*/
@Test
public void testWordCountString(){
String str = "Love your parents."
+ "We are too busy growing up yet we "
+ "forget that they are already growing old";
str = str.replaceAll("[\\W]", " ");
String[] strArray = str.split("\\s");
Map<String, Integer> map = new HashMap<String, Integer>();
for (int i = 0; i < strArray.length; i++) {
if (map.containsKey(strArray[i])) {
map.put(strArray[i], map.get(strArray[i]) + 1);
} else if(!strArray[i].equals("")) {
map.put(strArray[i], 1);
}
}
System.out.println(map);
printMap(map);
}
/**
* 获取map中的值
*/
private void printMap(Map<String,Integer> map){
Set<Entry<String, Integer>> entries = map.entrySet( );
if(entries != null) {
Iterator<Entry<String, Integer>> iterator = entries.iterator( );
while(iterator.hasNext( )) {
Map.Entry<String,Integer> entry =(Entry<String, Integer>) iterator.next( );
System.out.println(entry.getKey()+"\t\t:"+entry.getValue()+"次");
}
}
}
}