一个字符串中可能包含a~z中的多个字符,如有重复,如String data="aavzcadfdsfsdhshgWasdfasdf",求出现次数最多的那个字母及次数,如有多个重复的则都求出。
2014-08-30 09:38
741 查看
package demo; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.Set; import java.util.TreeSet; /* 一个字符串中可能包含a~z中的多个字符,如有重复,如String data="aavzcadfdsfsdhshgWasdfasdf", 求出现次数最多的那个字母及次数,如有多个重复的则都求出。网上的解答有些是错的,少了47行那句话。 */ public class Demo3 { public static void main(String[] args) { String data="ddaabbbccc"; getMax(data); } private static void getMax(String data) { //将字符串使用toCharArray()方法变为字符数组,再遍历数组分别存入ArrayList和TreeSet List<String> list = new ArrayList<String>(); Set<String> set = new TreeSet<String>(); char[] array = data.toCharArray(); for (int i = 0; i < array.length; i++) { list.add(String.valueOf(array[i])); set.add(String.valueOf(array[i])); } //利用集合工具类Collections的sort()方法对ArrayList排序 Collections.sort(list); //使用StringBuffer存放list,并用toString()方法转换为字符串。 StringBuffer sb = new StringBuffer(); Iterator<String> iterator = list.iterator(); while(iterator.hasNext()){ sb.append(iterator.next()); } String string = sb.toString(); //至此将字符串变为了有序不允许重复的set和有序且字母有重复的String //迭代set,使用indexOf和lastIndexOf方法操作String得到重复字母次数 //max记录最大重复次数,maxString记录当前最大字符串,maxList存储所有最大字符,maxList.size()即为重复字符个数 int max=0; String maxString=""; ArrayList<String> maxList = new ArrayList<String>(); for(Iterator<String> it = set.iterator();it.hasNext();){ String s = (String) it.next(); int begin = string.indexOf(s); int end = string.lastIndexOf(s); int value = end-begin+1; if(value>max&&value>1){ maxList.clear();//产生新的最大字符要清空之前的最大字符,否则输出最大字符不正确。 max = value; maxString = s; maxList.add(s); }else if(value==max){ maxList.add(s); } } System.out.println(list); System.out.println(set); for (int i = 0; i < maxList.size(); i++) { System.out.println("最大字符"+maxList.get(i)); } System.out.println("最多次数:"+max); } }
相关文章推荐
- 一个字符串中可能包含a~z中的多个字符,如有重复,如String data="aavzcadfdsfsdhshgWasdfasdf",求出现次数最多的那个字母及次数,如有多个重复的则都求出。
- 一个字符串中可能包含a~z中的多个字符,如有重复,如String data="aavzcadfdsfsdhshgWasdfasdf",求出现次数最多的那个字母及次数,如有多个重复的则都求出。
- 一个字符串中可能包含a~z中的多个字符,如有重复,求出现次数最多的那个字母及次数,如有多个重复最多的则都输出。
- 一个字符串中可能包括a-z中的多个字符,如有重复,求出现最多次数的那个字符及次数,如有多个重复的则都求出
- 给定字符串,求出现次数最多的那个字母及次数,如有多个重复则都输出
- 给定字符串,求出现次数最多的那个字母及次数,如有多个重复则都输出
- 求包含a~z中多个字符的字符串中重复出现最多的字母及次数问题
- 计算一个字符串最多重复的字符及出现次数
- JavaScript计算一个字符串最多重复的字符及出现次数
- JavaScript计算一个字符串最多重复的字符及出现次数
- 从文件读取包含数字和字母字符串,统计每个字符出现的次数,将次数输出到另外一个文件
- 找出一个字符串中重复最多的字符以及出现的次数
- 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。 压缩规则: 1、仅压缩连续重复出现的字符。比如字符串"abcbc
- 查找一个字符串中出现次处最多的那个字符,并输出出现次数
- php面试题:如何知道一个未知长度的字符串哪个字符出现的次数最多?(字符串可由字母,数字及其他字符组成)请写出代码。
- 给一个字符串,包含了空格等标点符号,计算出出现次数最多的字母和该字母出现的次数
- 给出一个字符串(不带空格),找出字符串当中出现次数最多的字符?
- 给定一个字符串,求出该字符串里哪个字符出现的次数最多
- 如何查找一个字符串中重复次数最多的字符,返回这个字符的个数和字符
- javascript判断一个字符串中出现次数最多的字符,统计这个次数