广告
返回顶部
首页 > 资讯 > 精选 >利用Java实现求字符串中出现次数最多的字符及次数
  • 838
分享到

利用Java实现求字符串中出现次数最多的字符及次数

java字符串ava 2023-05-31 16:05:49 838人浏览 安东尼
摘要

这篇文章将为大家详细讲解有关利用Java实现求字符串中出现次数最多的字符及次数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。此题的解题思路如下:引入TreeSet:通过集合快速找到所有出现过

这篇文章将为大家详细讲解有关利用Java实现求字符串中出现次数最多的字符及次数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

此题的解题思路如下:

引入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) {          //将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="";          //用来保存出现最多的字符串和次数     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());       }     }   } } 

--结束END--

本文标题: 利用Java实现求字符串中出现次数最多的字符及次数

本文链接: https://www.lsjlt.com/news/227105.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作