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集合统计字母次数的更多相关文章

  1. Map 集合按字母排序方法

    @Testpublic void testMapSort() { Map<String, String> map = new HashMap<>(); map.put(&quo ...

  2. 集合框架-Map练习-记录字母出现的次数

    /* * 练习: * 字符串"abcb453   sddbs343bsjvAJBBDVBs21768723",获取该字符串中,每一个字母出现的次数. * 要求打印结果是:a(2)b ...

  3. 获取一个字符串中每一个字母出现的次数使用map集合

    package 获取字符串中单字符出现次数; import java.util.Scanner; import java.util.TreeMap; /* * 需求:获取一个字符串中每一个字母出现的次 ...

  4. Map集合练习之对字符串中字母出现的次数求和

    不多说,直接上干货! 代码需求 如有这么一个字符串 String str = "fdg+avAdc bs5dDa9c-dfs"; MapTest.java package zhou ...

  5. 集合框架-Map集合练习-记录字母次数思路及代码

    1 package cn.itcast.p10.map.test; 2 3 import java.util.Iterator; 4 import java.util.Map; 5 import ja ...

  6. Java 13天基础 06天map集合小练习(黑马程序员) 统计字符串中每个字符出现的次数 (经典面试题)

    import java.util.HashMap; import java.util.Map; import java.util.Scanner; /** * 目标 : 输出一个字符串中每个字符出现的 ...

  7. 使用folderLeft函数统计字母出现的次数

    实例:统计字符串中字母出现的次数 import scala.collection.mutable object Demo_018{ def main(args: Array[String]): Uni ...

  8. map集合修改其中元素 去除Map集合中所有具有相同值的元素 Properties长久保存的流操作 两种用map记录单词或字母个数的方法

    package com.swift.lianxi; import java.util.HashMap; import java.util.Iterator; import java.util.Map; ...

  9. 计算一个字符串的每个字符出现的次数案例——Map集合

    其中,字符的包装类是Character;字符串包装类是String: 遍历字符串转换的数组,每个元素都是一个字符,看创建的这个集合有木有,一开始肯定是没有的其实,字符作为key,所以判断的是这个创建的 ...

随机推荐

  1. JQuery表格操作的常用技巧总结

    JQuery对表格进行操作的常用技巧. 1.表格奇数行和偶数行分别添加样式 复制代码代码如下: $(function(){  $('tr:odd').addClass("odd") ...

  2. gcc安装多个版本

    http://blog.csdn.net/chid/article/details/6251781

  3. activiti整合spring

    activiti的配置文件其实就是一份spring的配置文件,只是默认将processEngineConfiguration做为一个bean来读取. 当和spring进一步整合时,需要使用 Sprin ...

  4. LCS 最长公共子序列

    区别最长公共子串(连续) ''' LCS 最长公共子序列 ''' def LCS_len(x, y): m = len(x) n = len(y) dp = [[0] * (n + 1) for i ...

  5. 基于std::string的字符串处理

    转自:http://zxdflyer.blog.163.com/blog/static/25664262201322510217495/ C++标准模板库std使用广泛.该库中处理字符串的对象为std ...

  6. pyDay13

    内容来自廖雪峰的官方网站. 1.把list.dict.str等Iterable变成Iterator可以使用iter()函数 >>> L = iter([1, 2, 3, 4, 5, ...

  7. Vue学习笔记之Vue知识点补充

    0x00 修饰符 .lazy 在默认情况下,v-model 在每次 input 事件触发后将输入框的值与数据进行同步 .你可以添加 lazy 修饰符,从而转变为使用 change 事件进行同步: &l ...

  8. linux第八周

    进程的切换和系统的一般执行过程 一.进程调度与进程切换 1.不同的进程有不同的调度需求 第一种分类: I/O密集型(I/O-bound)频繁的进行I/O通常会花费很多时间等待I/O操作的完成CPU密集 ...

  9. HDU 3339 In Action(最短路+背包)题解

    思路:最短路求出到每个点的最小代价,然后01背包,求出某一代价所能拿到的最大价值,然后搜索最后结果. 代码: #include<cstdio> #include<set> #i ...

  10. POJ 1625 Censored!(AC自动机->指针版+DP+大数)题解

    题目:给你n个字母,p个模式串,要你写一个长度为m的串,要求这个串不能包含模式串,问你这样的串最多能写几个 思路:dp+AC自动机应该能看出来,万万没想到这题还要加大数...orz 状态转移方程dp[ ...