Java求字符串中出现次数最多的字符串以及出现次数
发布时间 - 2026-01-11 00:31:16 点击率:次金山公司面试题:一个字符串中可能包含a~z中的多个字符,如有重复,如String data="aavzcadfdsfsdhshgWasdfasdf",求出现次数最多的那个字母及次数,如有多个重复的则都求出。

此题的解题思路如下:
引入TreeSet:通过集合快速找到所有出现过的字符串
引入ArrayList:为了快速排序,再通过StringBuffer生成排序后的字符串
通过String的indexOf方法和lastIndexOf方法来计算每个字符串出现的次数最大值
使用HashMap存储出现多的字符串和次数
代码如下:
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeSet;
public class SortTest {
public static void main(String[] args) {
String input = "httpblogcsdnnetouyangpeng";
new SortTest().doString(input);
}
public void doString(String input) {
/**
* 第一步:
* 使用TreeSet快速找到所有出现的字符串
* 将输入的字符串按升序排列
*/
//将String转换为字符数组
char[] chars=input.toCharArray();
ArrayList<String> lists=new ArrayList<String>();
//TreeSet是一个有序集合,TreeSet中的元素将按照升序排列
//通过TreeSet的不重复性,快速找到所有出现的字符串
TreeSet<String> set=new TreeSet<String>();
for (int i = 0; i < chars.length; i++) {
lists.add(String.valueOf(chars[i]));
set.add(String.valueOf(chars[i]));
}
//set= [a, b, c, d, e, g, h, l, n, o, p, s, t, u, y]
System.out.println("set= "+set);
//排序
Collections.sort(lists);
//lists= [a, b, c, d, e, e, g, g, g, h, l, n, n, n, n, o, o, p, p, s, t, t, t, u, y]
System.out.println("lists= "+lists);
//将排序好的字符数组转换为StringBuffer
StringBuffer sb=new StringBuffer();
for (int i = 0; i < lists.size(); i++) {
sb.append(lists.get(i));
}
input=sb.toString();
//input= abcdeeggghlnnnnooppstttuy
System.out.println("input= "+input);
/**
* 第二步: 找出出现相同的字符并记录出现多少次
*/
//最多重复出现多少次
int max=0;
//重复出现的字符
String maxString="";
/*//重复出现的字符列表
ArrayList<String> maxList=new ArrayList<String>();*/
//用来保存出现最多的字符串和次数
HashMap<String, Integer> hm=new HashMap<String, Integer>();
//将出现过的字符遍历
Iterator<String> its=set.iterator();
while (its.hasNext()) {
String os=its.next();
//字符出现在排序后input中的第一次位置
int begin=input.indexOf(os);
//字符出现在排序后input中的最后一次位置
int end=input.lastIndexOf(os);
//字符出现的次数
int value=end-begin+1;
if (value>=max) {
max=value;
maxString=os;
hm.put(maxString, max);
}
}
for (Map.Entry<String, Integer> enties: hm.entrySet()) {
if (enties.getValue()==max) {
System.out.print("重复最多的字母是:"+enties.getKey());
System.out.println("重复最多的次数是:"+enties.getValue());
}
}
}
}
运行结果如下:
set= [a, b, c, d, e, g, h, l, n, o, p, s, t, u, y] lists= [a, b, c, d, e, e, g, g, g, h, l, n, n, n, n, o, o, p, p, s, t, t, t, u, y] input= abcdeeggghlnnnnooppstttuy
重复最多的字母是:n重复最多的次数是:4
当有字符串重复的次数相同时,也可以将它们都打印出来。
如
public static void main(String[] args) {
String input = "abbcccddddeeeeeffffffaaaaabbb";
new SortTest().doString(input);
}
运行结果如下:
set= [a, b, c, d, e, f] lists= [a, a, a, a, a, a, b, b, b, b, b, c, c, c, d, d, d, d, e, e, e, e, e, f, f, f, f, f, f] input= aaaaaabbbbbcccddddeeeeeffffff 重复最多的字母是:f重复最多的次数是:6 重复最多的字母是:a重复最多的次数是:6
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Java出现次数最多字符串
# Java统计字符串出现次数
# java字符串出现的次数
# js查找字符串出现次数
# Java案例使用集合方法实现统计任意字符串中字符出现的次数
# Java实现统计字符串出现的次数
# Java统计一个字符串在另外一个字符串出现次数的方法
# Java统计字符串中字符出现次数的方法示例
# Java获取指定字符串出现次数的方法
# java统计字符串中重复字符出现次数的方法
# java统计字符串中指定元素出现次数方法
# java求数组元素重复次数和java字符串比较大小示例
# java字符串比较获取字符串出现次数的示例
# JAVA统计字符串中某个字符出现次数的方法实现
# 最多
# 升序
# 多个
# 如有
# 出现在
# 求出
# 转换为
# 是一个
# 金山公司
# 遍历
# 方法来
# 第二步
# 大家多多
# 不重
# 打印出来
# 面试题
# 次数最多
# Map
# Iterator
# java
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置
Python进程池调度策略_任务分发说明【指导】
Win11怎么开启自动HDR画质_Windows11显示设置HDR选项
如何为不同团队 ID 动态生成多个独立按钮
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
网站优化排名时,需要考虑哪些问题呢?
HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】
如何撰写建站申请书?关键要点有哪些?
Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程
如何在景安服务器上快速搭建个人网站?
如何用搬瓦工VPS快速搭建个人网站?
php静态变量怎么调试_php静态变量作用域调试技巧【解答】
如何制作一个表白网站视频,关于勇敢表白的小标题?
如何彻底删除建站之星生成的Banner?
html5的keygen标签为什么废弃_替代方案说明【解答】
Laravel如何使用模型观察者?(Observer代码示例)
Laravel如何处理表单验证?(Requests代码示例)
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
Java解压缩zip - 解压缩多个文件或文件夹实例
Laravel如何使用Passport实现OAuth2?(完整配置步骤)
如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环
Laravel如何实现API速率限制?(Rate Limiting教程)
重庆市网站制作公司,重庆招聘网站哪个好?
,交易猫的商品怎么发布到网站上去?
制作企业网站建设方案,怎样建设一个公司网站?
微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】
如何快速生成橙子建站落地页链接?
Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能
Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南
如何快速生成凡客建站的专业级图册?
iOS验证手机号的正则表达式
使用豆包 AI 辅助进行简单网页 HTML 结构设计
Laravel模型事件有哪些_Laravel Model Event生命周期详解
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】
Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】
Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
如何快速启动建站代理加盟业务?
标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析
Laravel如何为API生成Swagger或OpenAPI文档
Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】
Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程
如何在 Pandas 中基于一列条件计算另一列的分组均值
Python正则表达式进阶教程_复杂匹配与分组替换解析
电商网站制作价格怎么算,网上拍卖流程以及规则?
Java遍历集合的三种方式

