Map集合统计字母次数
Map集合练习:
"asfefxAAcf34vrfdfse2-2asd--wdd"获取该字符串中,每一个字母出现的次数
要求打印的结果是:a(2)c(1)...;
思路:
对结果分析发现,结果中字母和出现次数之间构成映射关系,而且很多,
很多就需要存储。能存储映射关系的有数组和Map集合。
关系中有一方顺序固定么?没有,所以选有Map集合。
又发现可以作为唯一标识的一方有自然顺序,即字母表的顺序;
所以选有TreeMap存储。
集合中最终存储的是以字母为键,以字母出现次数为值的映射关系。
1.因为操作的是字符,所以先把字符串转化成字符数组。
2.遍历字符数组,分别以字母为键去Map集合中判断,集合中是否包含该元素,
如果不包含,则以该字母为键,以1为值,存入Map集合中;
如果包含,则取出该字母对应的值,加一,再把该字母和新的值存入集合,这样新的值就会覆盖旧的值。
3.遍历完毕,每个字母对应的值便是其在该字符串中出现的次数,
在对集合进行打印输出即可。
public class MapTest { public static void main(String[] args) {
String str="asfefxAAcf34vrfdfse2-2asd--wdd";
String s=countChar(str);
System.out.println(s); }
//定义实现统计字母出现次数的静态方法
public static String countChar(String str) {
char[] chs=str.toCharArray();
Map<Character,Integer> tm=new TreeMap<Character,Integer>();
for (int i = 0; i < chs.length; i++) {
//只统计字母出现次数,不统计其他字符
if(!(chs[i]>='a' && chs[i]<='z'|| chs[i]>='A' && chs[i]<='Z'))
continue;
int count=1;
Integer value=tm.get(chs[i]);
if(value!=null)
count+=value;
tm.put(chs[i], count); }
return printMap(tm);
}
//定义按规格打印集合的方法
private static String printMap(Map<Character, Integer> tm) {
StringBuilder sb=new StringBuilder();
Iterator<Character> it=tm.keySet().iterator();
while(it.hasNext())
{
Character key=it.next();
Integer value=tm.get(key);
sb.append(key+"("+value+") ");
}
return sb.toString();
}
}
Map集合统计字母次数的更多相关文章
- Map 集合按字母排序方法
@Testpublic void testMapSort() { Map<String, String> map = new HashMap<>(); map.put(&quo ...
- 集合框架-Map练习-记录字母出现的次数
/* * 练习: * 字符串"abcb453 sddbs343bsjvAJBBDVBs21768723",获取该字符串中,每一个字母出现的次数. * 要求打印结果是:a(2)b ...
- 获取一个字符串中每一个字母出现的次数使用map集合
package 获取字符串中单字符出现次数; import java.util.Scanner; import java.util.TreeMap; /* * 需求:获取一个字符串中每一个字母出现的次 ...
- Map集合练习之对字符串中字母出现的次数求和
不多说,直接上干货! 代码需求 如有这么一个字符串 String str = "fdg+avAdc bs5dDa9c-dfs"; MapTest.java package zhou ...
- 集合框架-Map集合练习-记录字母次数思路及代码
1 package cn.itcast.p10.map.test; 2 3 import java.util.Iterator; 4 import java.util.Map; 5 import ja ...
- Java 13天基础 06天map集合小练习(黑马程序员) 统计字符串中每个字符出现的次数 (经典面试题)
import java.util.HashMap; import java.util.Map; import java.util.Scanner; /** * 目标 : 输出一个字符串中每个字符出现的 ...
- 使用folderLeft函数统计字母出现的次数
实例:统计字符串中字母出现的次数 import scala.collection.mutable object Demo_018{ def main(args: Array[String]): Uni ...
- map集合修改其中元素 去除Map集合中所有具有相同值的元素 Properties长久保存的流操作 两种用map记录单词或字母个数的方法
package com.swift.lianxi; import java.util.HashMap; import java.util.Iterator; import java.util.Map; ...
- 计算一个字符串的每个字符出现的次数案例——Map集合
其中,字符的包装类是Character;字符串包装类是String: 遍历字符串转换的数组,每个元素都是一个字符,看创建的这个集合有木有,一开始肯定是没有的其实,字符作为key,所以判断的是这个创建的 ...
随机推荐
- CSV文件读取类
最近项目中,经常需要读取Csv文件.基本步骤是: (1)按行读取 (2)然后将一行数据按逗号,分割为字符串数组 (3)将各列字符串转换成相应类型的数据 ,如int double类型 写了一个简单的Cs ...
- 后台管理系统-使用AdminLTE搭建前端
返回总目录<ABP项目实战-后台管理系统-目录> 安装AdminLte 我们通过Nuget包管理器安装AdminLte 引用三方组件 因为AdminLte使用到了很多三方的组件,所以我们需 ...
- php中的set_magic_quotes_runtime()作用和用法
set_magic_quotes_runtime 用来设置php.ini文件中的magic_quotes_runtime值,当遇到反斜杆(\).单引号(').双引号(")这样一些的字符定入到 ...
- 测试人必备:国内外最好用的6款Bug跟踪管理系统
在移动互联网产品中,Bug会导致软件产品在某种程度上不能满足用户的需要.确保一个项目进展顺利,关键在于妥善处理软件中的BUG,那么,如何高效的管理BUG,解决BUG?在这里,我为大家搜集了几款优秀的B ...
- CCPC-Wannafly Winter Camp Day1 (Div2, onsite)
Replay Dup4: 要是不挂机,再多仔细想想就好了 J确实自闭好久,一直在想正确性,最后数据错了,喵喵喵? 还是要保证充足的休息啊,中间睡了一小会儿,也不知道睡了多久,醒来他们就又过了一道 要发 ...
- SQLServer cast()函数
语法: CAST (expression AS data_type) 参数说明: expression:任何有效的SQLServer表达式. AS:用于分隔两个参数,在AS之前的是要处理的数据,在AS ...
- linux 常用命令总结(二)
1. linux下以指定的编码打开文件:LANG=zh_CN vi fileName 2. 查看系统内存使用,可以使用free -m 或 top 3. 使用env查看所有环境变量 4. df –h 查 ...
- 20145325张梓靖 《Java程序设计》第7周学习总结
20145325张梓靖 <Java程序设计>第7周学习总结 教材学习内容总结 时间的度量 格林威治时间,简称GMT时间,由观察太阳而得来:世界时,UT:国际原子时,TAI:世界协调时间,U ...
- springboot2 统一异常处理
统一异常处理,不需要在每一层上单独捕获异常,只需要关注业务的开发: 代码如下: @RestControllerAdvice @Slf4j public class GlobalExceptionHan ...
- 通过FISH和下一代测序检测肺腺癌ALK基因融合比较
ALK FISH探针是FDA批准的用于检测肺癌患者中ALK重排的方法,这些患者可能受益于ALK激酶抑制剂.FISH测定在技术上可能具有挑战性并且难以解释.已经有研究者提出以ALK免疫组织化学和下一代测 ...