获取字符串中字母出现的个数
来源:互联网 发布:c语言宿舍管理系统 编辑:程序博客网 时间:2024/05/17 08:02
import java.util.*;/* 练习: "sdfgzxcvasdfxcvdf"获取该字符串中的字母出现的次数。 希望打印结果:a(1)c(2)...... 通过结果发现:每一个字母都有对应的次数。 说明字母和次数之间都有映射关系。 注意:当发现有映射关系时,可以选择map集合, 因为Map集合中存放的就是映射关系。 思路: 1、将字符串转换为字符数组,因为要对每一个字母进行操作。 2、定义一个map集合,因为打印结果的字母有顺序,所以使用treeMap集合。 3、遍历字符数组。 将每一个字母作为键去查map集合。 如果返回null,将字母和1存入到map集合中。 如果返回的不是null,说明该字母在map集合已经已经存在并有对应次数。 那么久获取该次数并进行自增,然后将该字母和自增后的次数存入到map集合,覆盖掉原来键锁对应的值。 4、将map集合中的数据变成指定的字符串形式返回。 */public class TreeMapExercise {public static void main(String[] args) {String s=charCount("sdfgzxcvasdf111222xcvdf");System.out.println(s);}public static String charCount(String str){char[] chs=str.toCharArray();TreeMap<Character,Integer> tm=new TreeMap<>();int count=0;for(int x=0;x<chs.length;x++){//如果不是字母就忽略不计if(!(chs[x]>='a'&&chs[x]<='z' || chs[x]>='A'&&chs[x]<='Z'))continue;Integer value=tm.get(chs[x]);if(value!=null)count=value;count++;tm.put(chs[x], count);count=0;//两种方式都可以/*if(value==null){tm.put(chs[x],1);}else{value=value+1;tm.put(chs[x], value);}*/}System.out.println(tm);StringBuilder sb=new StringBuilder();Set<Map.Entry<Character,Integer>> entrySet=tm.entrySet();Iterator<Map.Entry<Character,Integer>> it=entrySet.iterator();while(it.hasNext()){Map.Entry<Character,Integer> me=it.next();Character ch=me.getKey();Integer value=me.getValue();sb.append(ch+"("+value+")");}return sb.toString();}}
没加判断是不是字符的语句时的结果:
加上判断语句后的结果:
5 0
- 获取字符串中字母出现的个数
- 统计字符串中字母出现的个数
- 字符串中各个字母出现的个数
- 获取字符串中字母出现的次数
- 字符串中出现的相同字母的个数
- 16周:统计字符串中数字、字母出现的个数。
- 统计一个字符串中大小写字母的个数,数字出现的个数
- 利用map集合获取字符串中字母出现的次数
- java "aababcabcdabcde",获取字符串中每一个字母出现的次数
- 获取字符串中每个字母出现的次数
- 获取字符串中每一个字母出现的次数
- Java 获取字符串中 每一个字母出现的次数
- python 获取字符串中出现次数最多的字母
- 获取字符串中每一个字母出现的次数
- TreeMap获取字符串中字母出现次数
- 第13周项目5字符串操作-统计字符串中大小写字母出现的个数
- 第13周项目5字符串操作-统计字符串中字母出现的个数
- 统计字符串中大小写字母的个数
- JSP中getParameter与getAttribute有何区别?
- tcpdump 参数详解
- easyui环境搭建02
- 多媒体封装格式学习:H264封装成FLV(二)
- js数组存储对象及对象的获取
- 获取字符串中字母出现的个数
- HDU 2070 叠框
- Xcode cannot run using the selected device-无法真机调试
- Service的肤浅了解
- Swift笔记.01
- 第12周—项目5 迷宫问题之图深度优先遍历解法
- TestFrameWork API接口测试框架
- SVN switch 用法详解
- 安卓上手-实现游戏2048