java求解字符串中出现的最多重复字符及个数
2014-08-12 18:46
344 查看
本方法不足之处是当出现相同的最多字符时,没有办法实现将所有相同的输出来,日后再想想吧!
import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.Scanner; import java.util.TreeSet; /** * 一个字符串可能包含a~z中的多个字符,允许重复,随机输入一串字符串, * 求出现次数最多的那个字母及次数 * @author USER * */ public class CheckRepeatString { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.print("输入一串字符串:"); String string = in.nextLine(); CheckRepeatString crs = new CheckRepeatString(); crs.doString(string); } public void doString(String input) { //字符串转化为字符数组,通过ArrayList容器来重新排序,TreeSet容器来剔除重复的元素 char[] ch = input.toCharArray(); ArrayList<String> list = new ArrayList<String>(); TreeSet<String> set = new TreeSet<String>(); for (int i = 0; i < ch.length; i++) { list.add(String.valueOf(ch[i])); set.add(String.valueOf(ch[i])); } System.out.println(set); System.out.println(list); Collections.sort(list);//调用Collections类的sort方法实现对list的排序 System.out.println(list); //将ArrayList排序好的数组转化为字符串 StringBuffer sb = new StringBuffer(); for (int i = 0; i < list.size(); i++) { sb.append(list.get(i)); } input = sb.toString(); System.out.println(input); //通过TreeSet中无重复字符来求取对应重复字符的个数 int max = 0; String maxString = ""; ArrayList<String> repeatList = new ArrayList<String>();//保存重复字符 Iterator<String> iterator = set.iterator();//对set容器遍历 while (iterator.hasNext()) { String str = iterator.next(); int begin = input.indexOf(str); int end = input.lastIndexOf(str); int value = end - begin +1; if (value > max) { max = value; maxString = str; repeatList.add(str); }else if (value == max) { repeatList.add(str); } } //输出最大重复的字符串字符和个数 System.out.print("最多字符为:"); for (int i = 0; i < repeatList.size(); i++) { if (repeatList.get(i).equals(maxString)) { System.out.print(repeatList.get(i)+" "); } } System.out.println(); System.out.println("最多的个数为:"+max); } }
相关文章推荐
- Java去除字符串中重复出现的字符
- 用java实现,查找字符串中第一个没有重复出现的字符
- 用Java正则去掉字符串中重复出现的字符
- java一个算法题:输出一个字符串中出现次数最多的字符,以及次数
- 一个字符串中可能包含a~z中的多个字符,如有重复,如String data="aavzcadfdsfsdhshgWasdfasdf",求出现次数最多的那个字母及次数,如有多个重复的则都求出。
- java统计字符串中重复出现字符的个数
- 用java实现输出字符串中第一个出现不重复的字符
- 华为上机试题(java)找出一个字符串中出现次数最多的字符
- 计算一个字符串最多重复的字符及出现次数
- java 求解字符串中第一次出现的字符的位置
- 一个字符串中可能包含a~z中的多个字符,如有重复,求出现次数最多的那个字母及次数,如有多个重复最多的则都输出。
- java一个算法题:输出一个字符串中出现次数最多的字符,以及次数
- JavaScript计算一个字符串最多重复的字符及出现次数
- 找出一个字符串中重复最多的字符以及出现的次数
- java获取字符串中重复出现的字符
- Java统计字符串中出现次数最多的字符及其次数
- Java实现给定任一字符串,长度为任意,要求找出其出现次数最多的字符及其出现次数。
- 一个字符串中可能包含a~z中的多个字符,如有重复,如String data="aavzcadfdsfsdhshgWasdfasdf",求出现次数最多的那个字母及次数,如有多个重复的则都求出。
- java统计字符串中出现最多的字符
- java实现输出字符串中第一个出现不重复的字符详解