找出字符串中特定字符出现的次数的实现(分拣思路)
2017-07-04 19:46
561 查看
通过HashMap和Set接口实现
第二种:
输出:
总结:多看多理解多写
public class Letter { private String name; private int count; public Letter(){ } public Letter(String name, int count) { super(); this.name = name; this.count = count; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getCount() { return count; } public void setCount(int count) { this.count = count; } }
import java.util.HashMap; import java.util.Map; import java.util.Set; /** * This is a cat and that is a mice and where is the food? * 统计每个单词出现的次数 * 存储到map中 * Key:String * value:自定义类型 * * "分拣"思路 * 第一种:为所有的Key创建容器 * 之后容器中存放对应value * 第二种:第一次创建容器,并存放值value * 第二次之后,直接使用容器存放值 * @author Administrator * */ public class Demoo1 { public static void main(String[] args) { String s="This is a cat and that is a mice and where is the food"; //分割字符串 String[] strArray=s.split(" "); //存储到Map中 Map<String,Letter> letters=new HashMap<String,Letter>(); for (String temp : strArray) { /* * 1.为所有的Key存放容器 * 之后容器存放对应的value */ if(!letters.containsKey(temp)){ letters.put(temp, new Letter()); } Letter col = letters.get(temp);//直接获取容器 col.setCount(col.getCount()+1); } //输出map的值 Set<String> keys=letters.keySet(); for (String key : keys) { Letter col = letters.get(key); System.out.println("字母:"+key+",次数:"+col.getCount()); } } }
第二种:
import java.util.HashMap; import java.util.Map; import java.util.Set; /** * This is a cat and that is a mice and where is the food? * 统计每个单词出现的次数 * 存储到map中 * Key:String * value:自定义类型 * * "分拣"思路 * 第一种:为所有的Key创建容器 * 之后容器中存放对应value * 第二种:第一次创建容器,并存放值value * 第二次之后,直接使用容器存放值 * @author Administrator * */ public class Demoo1 { public static void main(String[] args) { String s="This is a cat and that is a mice and where is the food"; String[] strArray=s.split(" "); Map<String,Letter> letters=new HashMap<String,Letter>(); for(String temp:strArray){ //为所有Key创建容器 Letter col=null; if(null==(col=letters.get(temp))){ col=new Letter(); col.setCount(1);//第一次值存放容器中 letters.put(temp,col); }else{ //直接使用容器存放值 col.setCount(col.getCount()+1); } } //输出map的值 Set<String> keys=letters.keySet(); for (String key : keys) { Letter col = letters.get(key); System.out.println("字母:"+key+",次数:"+col.getCount()); } } }
输出:
字母:the,次数:1 字母:a,次数:2 字母:that,次数:1 字母:and,次数:2 字母:cat,次数:1 字母:This,次数:1 字母:is,次数:3 字母:where,次数:1 字母:mice,次数:1 字母:food,次数:1
总结:多看多理解多写
相关文章推荐
- JS实现找出字符串中出现最多的字符和次数
- Js实现找出字符串中出现次数最多的字符
- js实现找出字符串中出现字数最多的字符并计算其出现次数
- Java实现给定任一字符串,长度为任意,要求找出其出现次数最多的字符及其出现次数。
- 找出字符串中字符出现次数最的字符——benwu资料
- perl 统计字符串中特定字符出现的次数
- ASP.NET从字符串中查找字符出现次数的具体实现方法
- 计算字符串中每种字符出现的次数(用Dictionary实现)
- 用STL中的map实现的字符串中各个字符出现的次数
- 用js实现统计字符串里面的出现次数最多的字符
- ASP.NET从字符串中查找字符出现次数的具体实现方法
- 嘿牛程序员_成都传智博客_讨论字符串中字符出现的次数(续一:通过数组实现按次序输出)
- js实现从字符串中查找出现次数最多的字符的两种解决办法
- 给出一个字符串(不带空格),找出字符串当中出现次数最多的字符?
- 找出字符串中第一个出现次数最多的字符
- 用递归实现查找字符串中相同字符连续出现次数的最大值
- sql语句实现返回某一字符串中出现某一字符的次数
- c#面试题:找出字符串中出现次数最多的字符及出现次数
- 用递归实现查找字符串中相同字符连续出现次数的最大值
- 查找一个字符串中各个字符出现的次数,用TreeMap实现