Java求字符串中出现次数最多的字符
Java求字符串中出现次数最多的字符
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.Map;
- import java.util.Set;
- public class JavaTest {
- public static void main(String[] args) throws Exception {
- String Str = "AAbbcccaaaa";
- char[] StrArr = Str.toCharArray();// 把字符串转为字符数组toCharArray
- Map<Character, Integer> map = MapFunction(StrArr);
- char ch = FindMapMaxValue(map);
- }
- /**
- * MapFunction:实现将字符数组转存到Map中, 其中,Map中的key为出现的字符,value对应该字符出现的次数
- * @param StrArr StrArr字符数组,输入前必须先将字符串转为字符数组
- * @return map 集合中,key为出现的字符(Character),value对应该字符出现的次数(Integer)
- */
- public static Map<Character, Integer> MapFunction(char[] StrArr) {
- Map<Character, Integer> map = new HashMap<Character, Integer>();
- if (!(StrArr == null || StrArr.length == 0))// 先判断字符数组是否为空
- for (int i = 0; i < StrArr.length; i++)
- if (null != map.get(StrArr[i]))
- // 若不为空,说明已经存在相同字符,则Value值在原来的基础上加1
- map.put(StrArr[i], map.get(StrArr[i]) + 1);
- else
- map.put(StrArr[i], 1);
- return map;
- }
- /**
- * FindMapMaxValue 差找map中Value的最大值maxValue,类似于选择排序寻找最大值的过程:
- * 先任取一个Value值定义为最大值,然后与之比较
- * @param map 输入Map集合,该集合key为出现的字符(Character),value对应该字符出现的次数(Integer)
- * @return maxKey 返回出现次数最多的字符
- */
- public static Character FindMapMaxValue(Map<Character, Integer> map) {
- Set<Character> keys = map.keySet();// 获得所有key值
- Iterator keys_Itera = keys.iterator();// 实例化Iterator
- // keys_Itera.next():依次获得key值
- // map.get(key):获得对应的value值
- Character maxKey = (Character) keys_Itera.next();// 定义第一个为最大value和对应的key
- int maxValue = map.get(maxKey);
- while (keys_Itera.hasNext()) {
- Character temp = (Character) keys_Itera.next();
- if (maxValue < map.get(temp)) {
- maxKey = temp;
- maxValue = map.get(temp);
- }
- }
- System.out.println("出现次数最多的字符:" + maxKey + " 出现次数:" + maxValue);
- return maxKey;
- }
- }
- public static char FindMapMaxValue(Map<Character, Integer> map) {
- Iterator iter = map.entrySet().iterator();
- Map.Entry entry = (Map.Entry) iter.next();// 将第一个entry定义为最大次数的
- char maxKey = (char) entry.getKey();// 获得K
- int maxValue = (int) entry.getValue();// 获得V
- while (iter.hasNext()) {
- entry = (Map.Entry) iter.next();// 第二个entry
- char tempK = (char) entry.getKey();
- int tempV = (int) entry.getValue();
- if (maxValue < tempV) {
- maxKey = tempK;
- maxValue = tempV;
- }
- }
- System.out.println("出现次数最多的字符:" + maxKey + " 出现次数:" + maxValue);
- return maxKey;
- }
类似的还可以这样:
- import java.util.HashMap;
- import java.util.Map;
- public class JavaTest {
- public static void main(String[] args) throws Exception {
- String Str = "aaabbcddddee";
- char[] StrArr = Str.toCharArray();// 把字符串转为字符数组toCharArray
- Map<Character, Integer> map = new HashMap<Character, Integer>();
- if (!(StrArr == null || StrArr.length == 0))// 先判断字符数组是否为空
- for (int i = 0; i < StrArr.length; i++)
- if (null != map.get(StrArr[i]))
- // 若不为空,说明已经存在相同字符,则Value值在原来的基础上加1
- map.put(StrArr[i], map.get(StrArr[i]) + 1);
- else
- map.put(StrArr[i], 1);
- // 找map中Value的最大值maxValue,类似于选择排序,寻找最大值的过程:
- // 先任取一个Value值定义为最大值,然后与之比较
- int maxValue = map.get(StrArr[0]);
- char ch = ' ';
- for (int j = 0; j < StrArr.length; j++)
- if (maxValue < map.get(StrArr[j])) {
- maxValue = map.get(StrArr[j]);
- ch = StrArr[j];
- }
- System.out.println("现次数最多的字符:" + ch + " 出现次数:" + maxValue);
- }
- }
- 顶
- 0
- 踩
Java求字符串中出现次数最多的字符的更多相关文章
- 使用 Java 查找字符串中出现次数最多的字符以及出现的次数?
使用 Java 查找字符串中出现次数最多的字符以及出现的次数? import java.util.HashMap; import java.util.Map; public class TestStr ...
- java一个字符串中出现次数最多的字符以及次数
学习了别人的方法,觉得挺巧妙的.就是每次取出字符串的第一个字符,将字符串中与第一个字符相同的字符全部删除掉,然后通过计算删除前后字符串的长度来确定该字符在字符串中出现的次数,最终比较出出现最多次的字符 ...
- JS查找字符串中出现次数最多的字符
本文给大家带来两种js中查找字符串中出现次数最多的字符,在这两种方法中小编推荐使用第二种,对js查找字符串出现次数的相关知识感兴趣的朋友一起看看吧 在一个字符串中,如 'zhaochucichuz ...
- js面试之一个字符串中出现次数最多的字符是?出现几次?
最近在找面试题的时候发现了许多有趣的题目,在这里用随笔记录下~ 关于“一个字符串中出现次数最多的字符...”这种问题在笔试题中出现的频率还是很高的,我自己也找到了几种方法处理 var str = &q ...
- js判断一个字符串中出现次数最多的字符及次数
最近面试总是刷到这个题,然后第一次的话思路很乱,这个是我个人思路 for循环里两个 if 判断还可以优化 var maxLength = 0; var maxStr = ''; var count = ...
- JavaScript判断字符串中出现次数最多的字符,并统计其次数
要求: 输出一个给定字符串``中出现次数最多的字符,并统计其次数. 实现思路: 利用charA()遍历这个字符串 把每个字符都存储给对象,如果对象没有该属性,就先幅值为1,如果存在了就+1 遍历对象, ...
- JS-取出字符串中重复次数最多的字符并输出
/** 取出字符串中重复字数最多的字符 */ var words = 'sdfghjkfastgbyhnvdstyaujskgfdfhlaa'; //创建字符串 var word, //单个字符 le ...
- js常会问的问题:找出字符串中出现次数最多的字符。
一.循环obj let testStr = 'asdasddsfdsfadsfdghdadsdfdgdasd'; function getMax(str) { let obj = {}; for(le ...
- js-查找字符串中出现次数最多的字符
假设有一个字符串,下面让我们一起来查找出现次数最多的字符 var str = 'asdfssaaasasasasaa'; 首先,我们定义一个Object用来存放拆分的字符串,然后遍历字符串. 判断ob ...
随机推荐
- php:比较两个txt文件,格式如下,分别取出a.txt有的b.txt没有的,b.txt有的a.txt没有的及两个都有的
<?php /*比较两个txt文件,格式如下,分别取出a.txt有的b.txt没有的,b.txt有的a.txt没有的及两个都有的 * a.txt: * A * B * C * D * b.txt ...
- 【手撸一个ORM】第三步、SQL语句构造器和SqlParameter封装
既然是数据库工具,自然少不了增删改查的sql语句,在这里将这些常用SQL拼接操作集成到 [SqlServerBuilder.cs] 当中,方便后面调用. 近几年在项目中一直使用Dapper操作数据库, ...
- 二开获取yigo设计器里查询集合里中的某个SQL
package com.bokesoft.lrp_v3.mid.dongming.service; import java.math.BigDecimal; import java.util.Arra ...
- scrapy-redis 分布式哔哩哔哩网站用户爬虫
scrapy里面,对每次请求的url都有一个指纹,这个指纹就是判断url是否被请求过的.默认是开启指纹即一个URL请求一次.如果我们使用分布式在多台机上面爬取数据,为了让爬虫的数据不重复,我们也需要一 ...
- Selenium~自动化测试来了
这段时候研究了一下Selenium,它是一个自动化测试工具,在asp.net平台可以通过nuget去安装,同时支持多种开发语言,之前支持java,而现在也支持C#了,所以我们通过nuget就可以安装了 ...
- js解析url参数
1.采用正则,这也是现在使用最为方便的 function getQueryString(name) { const reg = new RegExp("(^|&)" + n ...
- Tensorflow版Faster RCNN源码解析(TFFRCNN) (1) VGGnet_test.py
本blog为github上CharlesShang/TFFRCNN版源码解析系列代码笔记第1篇 VGGnet_test.py ----作者:Jiang Wu(吴疆),未经允许,禁止转载--- -- ...
- scrollHelper
(function ($) { var mouseScroll = function (e) { try { var origEvent = e.originalEvent; origEvent.pr ...
- JS类对象实现继续的几种方式
0. ES6可以直接使用class,extends来继承. 1. 原型继承 父类: function Persion(name,age){ this.name = name; this.age = ...
- go实现set
package main import ( "fmt" "sync" ) type object interface{} type Set struct { m ...