问题:假设字符串仅仅保护a-z 的字母,java怎么实现统计一个字符串中字符出现的次数?而且,如果压缩后的字符数不小于原始字符数,则返回。

处理逻辑:首先拆分字符串,以拆分出的字符为key,以字符出现次数为value,存入Map中。

源码如下:

 import java.util.HashMap;
import java.util.Iterator;
import java.util.Map; public class TestCompress { public static void main(String[] args) {
String str = "aaabbbcccdfb";
compress(str);
} public static void compress(String str) {
Map<String, Integer> count = new HashMap<String, Integer>();
String[] myStrs = str.split("");
for (int i = 0; i < myStrs.length; i++) {
int totalNum = 1;
String currentStr = myStrs[i];
if (count.containsKey(currentStr)) {
totalNum = count.get(currentStr) + 1;
}
count.put(currentStr, totalNum);
}
int num = count.size();
System.out.println("压缩结果");
if (num == myStrs.length) {
System.out.println("各个字母都不一样,直接返回");
System.out.println(str);
return;
}
String result = "";
Iterator<Map.Entry<String, Integer>> it = count.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Integer> entry = it.next();
result = result + entry.getKey() + entry.getValue();
}
System.out.println(result);
}
}

运行结果:

 压缩结果
a3b4c3d1f1

java怎么实现统计一个字符串中字符出现的次数的更多相关文章

  1. Java统计一个字符串中各个字符出现的次数

    相信很多人在工作的时候都会遇到这样一个,如何统计一个字符串中各个字符出现的次数呢,这种需求一把用在数据分析方面,比如根据特定的条件去查找某个字符出现的次数.那么如何实现呢,其实也很简单,下面我贴上代码 ...

  2. js 统计一个字符串中出现的字符最多的字符

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. 20. orcle中统计一个字符串中某个字符的长度

    例子1:统计一个字符串中“,”的个数: select lengthb(regexp_replace('[a,b,c,d,e,f]','[^,]',null))  as res from dual; 例 ...

  4. String/StringBuilder 类 统计字符串中字符出现的次数

    1.1. 训练描述:[方法.String类] 一.需求说明:定义如下字符串: String str = “javajfiewjavajfiowfjavagkljjava”; 二.请分别定义方法统计出: ...

  5. HashMap 统计一个字符串中每个单词出现的次数

    HashMap 统计一个字符串中每个单词出现的次数 import java.util.HashMap; import java.util.Map; public class Test { public ...

  6. Map集合应用 取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:a(2)b(1)k(2)...

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

  7. JAVA经典题--计算一个字符串中每个字符出现的次数

    需求:  计算一个字符串中每个字符出现的次数 思路: 通过toCharArray()拿到一个字符数组--> 遍历数组,将数组元素作为key,数值1作为value存入map容器--> 如果k ...

  8. N个任务掌握java系列之统计一篇文章中单词出现的次数

    问题:统计一篇文章中单词出现的次数 思路: (1)将文章(一个字符串存储)按空格进行拆分(split)后,存储到一个字符串(单词)数组中. (2)定义一个Map,key是字符串类型,保存单词:valu ...

  9. java学习,从一个字符串中统计同一类型出现的次数

    1.从字符串“AS345asdzf*())sddsWE”中统计大写字母.小写字母.其他类型的出现的次数 String s="AS345asdzf*())sddsWE"; int l ...

随机推荐

  1. Navi.Soft31.微信WinForm框架(含下载地址)

    1.概述 1.1应用场景 微信的出现,改变了我们日常生活.而微信公众平台的出现,使我们每个人都可能成为一个品牌,微商的普及.微店越来越多.越来越多的人,借助微信公众平台,实现了自己的梦想 在此背景环境 ...

  2. snopy 数据库简介

    snoRNA ,small nucleolar RNA, 核仁小分子RNA, 是一类在细胞核内的small non-coding RNA, 长度在60-300nt, 其主要功能是调控其他小RNA分子( ...

  3. govendor使用

    一,开发端 前提是有一个已经go get过依赖包,并编译成功的项目. $ go get -u github.com/kardianos/govendor $ cd project_dir $ gove ...

  4. Angular4学习笔记(一)-环境搭建

    下载nodejs 下载地址 在命令行输入:npm -v 如果出现如下画面即安装成功 安装Angular的cli命令行工具 命令:sudo npm install -g @angular/cli 输入n ...

  5. 手动添加jar包到本地maven仓库(已测)ok

    很多时候我们需要的jar包在maven仓库上没有 我们可以自己找到这个jar包,但是怎么通过在pom文件配置使用呢? 需要我们手动将本地的jar包添加到本地maven仓库. 前提是已经配置好maven ...

  6. bootstrap-select 多选下拉框使用教程

    http://silviomoreto.github.io/bootstrap-select/ 一.使用bootstrap-select组件时,先引用下列文件 最后一个文件 defaults-zh_C ...

  7. Xamarin Mono Android实现“再按一次退出程序”

    开始研究Android平台软件编程,Xamarin Mono for Android上手快,跨平台共享代码,代价是bug多多,是一味可口的毒药啊! 环境VS2012 + Xamarin Mono An ...

  8. MySQL 删除数据库中重复数据方法

    1. 查询需要删除的记录,会保留一条记录. select a.id,a.subject,a.RECEIVER from test1 a left join (select c.subject,c.RE ...

  9. B - Image Perimeters

    Technicians in a pathology lab analyze digitized images of slides. Objects on a slide are selected f ...

  10. 学习markdown语法

    12.内部跳转 [这是一个按钮](#测试标题) - 1 - 1 - 1 # 测试标题 这是一个按钮 1 1 1 测试标题 注:使用-代替空格