这篇文章将为大家详细讲解有关利用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文档到电脑,方便收藏和打印~
2024-05-07
2024-05-07
2024-05-07
2024-05-07
2024-05-07
2024-05-07
2024-05-07
2024-05-07
2024-05-07
2024-05-07
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0