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. cocos代码研究(13)Widget子类EditBox学习笔记

    理论基础 一个用来输入文本的类,继承自 Widget , 以及 IMEDelegate. 代码部分 Public枚举类型 enum KeyboardReturnType键盘的返回键类型. enum I ...

  2. MySQL "tinyInt1isBit or tinyint(1)" 相关问题解析

    问题描述 tinyInt 的数据类型,在JAVA数据类型 和 MySQL的数据类型转换,要注意存储长度为 1 的情况.查询时,该字段对应的Java类型为Boolean 源数据: 读取后数据: 问题分析 ...

  3. 20145307陈俊达《网络对抗》Exp4 恶意代码分析

    20145307陈俊达<网络对抗>Exp4 恶意代码分析 基础问题回答 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪 ...

  4. SSL/TLS协议概览

    SSL/TLS协议是什么 计算机网络的OSI七层模型和TCP/IP四层模型想必大家都知道.其中SSL/TLS是一种介与于传输层(比如TCP/IP)和应用层(比如HTTP)的协议.它通过"握手 ...

  5. Spring Cloud OAuth2(一) 搭建授权服务

    概要 本文内容主要为spring cloud 授权服务的搭建,采用jwt认证. GitHub 地址:https://github.com/fp2952/spring-cloud-base/tree/m ...

  6. supervisor安装与问题

    [转]安装supervisor以及可能碰到的问题 单击此处查看原文 supervisor作为一个进程管理的python软件非常的给力 但是一不小心就会遇到一些问题 就比如下面这个: unix:///v ...

  7. SharePoint研究之表单登录配置

    本文将演示SharePoint怎样配置表单(Form)登录,后续文章将研究 无密码登录.编程添加用户组.编程添加用户.编程添加文件夹.编程分享文件夹(权限分配)等. 知识点:SharePoint.Sq ...

  8. 可替换参数在SharePoint和VS中的使用

    什么是可替换参数呢?你可能会在代码里看到像$SharePoint.Project.AssemblyFullName$一样的标记.VS会在编译的时候用完整的签名来替换相应参数.例如,标记 $ShareP ...

  9. Flask 6 模板2

    NOTE Jinja2提供了多种控制程序,可以用来改变模板的渲染流程. 1.在模板中使用条件控制语句: templates/condition.html: {% if user %} Hello, { ...

  10. POJ 2443 Set Operation(压位加速)

    http://poj.org/problem?id=2443 题意: 有1000个集合,每个集合有至多10000个数,之后输入多个询问,判断询问的两个数是否位于同一个集合. 思路: 位运算...很强大 ...