java怎么实现统计一个字符串中字符出现的次数
问题:假设字符串仅仅保护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怎么实现统计一个字符串中字符出现的次数的更多相关文章
- Java统计一个字符串中各个字符出现的次数
相信很多人在工作的时候都会遇到这样一个,如何统计一个字符串中各个字符出现的次数呢,这种需求一把用在数据分析方面,比如根据特定的条件去查找某个字符出现的次数.那么如何实现呢,其实也很简单,下面我贴上代码 ...
- js 统计一个字符串中出现的字符最多的字符
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 20. orcle中统计一个字符串中某个字符的长度
例子1:统计一个字符串中“,”的个数: select lengthb(regexp_replace('[a,b,c,d,e,f]','[^,]',null)) as res from dual; 例 ...
- String/StringBuilder 类 统计字符串中字符出现的次数
1.1. 训练描述:[方法.String类] 一.需求说明:定义如下字符串: String str = “javajfiewjavajfiowfjavagkljjava”; 二.请分别定义方法统计出: ...
- HashMap 统计一个字符串中每个单词出现的次数
HashMap 统计一个字符串中每个单词出现的次数 import java.util.HashMap; import java.util.Map; public class Test { public ...
- Map集合应用 取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:a(2)b(1)k(2)...
package com.swift; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import ...
- JAVA经典题--计算一个字符串中每个字符出现的次数
需求: 计算一个字符串中每个字符出现的次数 思路: 通过toCharArray()拿到一个字符数组--> 遍历数组,将数组元素作为key,数值1作为value存入map容器--> 如果k ...
- N个任务掌握java系列之统计一篇文章中单词出现的次数
问题:统计一篇文章中单词出现的次数 思路: (1)将文章(一个字符串存储)按空格进行拆分(split)后,存储到一个字符串(单词)数组中. (2)定义一个Map,key是字符串类型,保存单词:valu ...
- java学习,从一个字符串中统计同一类型出现的次数
1.从字符串“AS345asdzf*())sddsWE”中统计大写字母.小写字母.其他类型的出现的次数 String s="AS345asdzf*())sddsWE"; int l ...
随机推荐
- 深夜一次数据库执行SQL思考(怎么看执行报错信息)
如下sql在执行时 DROP TABLE IF EXISTS `book`; CREATE TABLE `book` ( `id` int(11) NOT NULL AUTO_INCREMENT, ` ...
- PCL中使用FLANN库(2)
接着上一篇的介绍继续 关于在使用readHeader函数读取点云数据头的类型的代码(Read a point cloud data header from a PCD file.) pcl::PCLP ...
- ubuntu: apt-get update的时候遇到“Hash Sum mismatch”错误
http://blog.csdn.net/xjwjava/article/details/8543768 http://askubuntu.com/questions/140246/how-do-i- ...
- React Native 项目整合 CodePush 全然指南
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/y4x5M0nivSrJaY3X92c/article/details/81976844 作者 | 钱 ...
- fiddler工作原理和代理设置
1,什么是Fiddler Fiddler是一个http协议调试代理工具,它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据.设置断点.调试web应用.修改请求的 ...
- js中的原型继承
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- OpenGL——二维几何变换
平移.旋转.缩放的实现 #include<iostream> #include <math.h> #include<Windows.h> #include < ...
- 二分求幂/快速幂取模运算——root(N,k)
二分求幂 int getMi(int a,int b) { ; ) { //当二进制位k位为1时,需要累乘a的2^k次方,然后用ans保存 == ) { ans *= a; } a *= a; b / ...
- Tiobe最新编程语言排行
https://www.tiobe.com/tiobe-index/
- 【BZOJ2671】Calc 数学
[BZOJ2671]Calc Description 给出N,统计满足下面条件的数对(a,b)的个数: 1.1<=a<b<=N 2.a+b整除a*b Input 一行一个数N Out ...