首页 > 学院 > 开发设计 > 正文

统计一段字符串中单词和字母各出现的次数

2019-11-08 18:29:59
字体:
来源:转载
供稿:网友

各个字母出现的次数

各个单词出现的次数

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"; //1、去除其他非单词字母字符,保留单词字母 str = str.replaceAll("[//W]", ""); //2、创建Map集合,字母用char类型的包装类接收、出现的次数用int类型的包装类接收 Map<Character, Integer> map = new HashMap<Character, Integer>(); //3、将其转为char类型的数组 进行判断 char[] ch = str.toCharArray(); //4、进行统计相应的字母出现的次数 for (int i = 0; i < ch.length; i++) { //判断集合中是否包含该字符, if (map.containsKey(ch[i])) { //是则只需将该字符次数加1 map.put(ch[i], map.get(ch[i]) + 1); } else { // 若不是,将该字符添加进去 初始出现次数值为1. 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"; //1、将非字母的字符 替换为一个空格 str = str.replaceAll("[//W]", " "); //2、将其根据空格 分割成为字符串数组 String[] strArray = str.split("//s"); Map<String, Integer> map = new HashMap<String, Integer>(); //3、循环遍历 进行判断 for (int i = 0; i < strArray.length; i++) { //判断条件为 是否已经添加 if (map.containsKey(strArray[i])) { //是则只需将该字符次数加1 map.put(strArray[i], map.get(strArray[i]) + 1); //并且对应的是否为空字符串 "" } else if(!strArray[i].equals("")) { // 若不是,将该字符添加进去 初始出现次数值为1. 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( );// Object key = entry.getKey();// Object value = entry.getValue(); System.out.println(entry.getKey()+"/t/t:"+entry.getValue()+"次"); } } }}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表