找出字符串中重复的字符 打印出来
来源:互联网 发布:攻击网站软件 编辑:程序博客网 时间:2024/06/11 23:30
1. 第一种方法:
利用简单的计算
package com.first;public class moreChar {/** * @param args */public static void main(String[] args) { String a = "aaabbbcccdddeee"; int sum [] = new int[10000]; for(int j=0; j<a.length(); j++) sum[(int)a.charAt(j)]++; int max = -1,csum=0; Character c [] = new Character[a.length()]; for (int i = 0; i < sum.length; i++){ if(max < sum[i]){ max = sum[i]; c[csum++] =(char)i; }else if(max == sum[i] && max !=0){ max = sum[i]; c[csum++] = (char)i; } } System.out.println("次数为:"+max); for (int i = 1; i < c.length; i++) { if (c[i] != null) System.out.println(c[i]); } }}
2. 利用jdk中的容器
package com.first;import java.util.ArrayList;import java.util.Collections;import java.util.HashSet;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Set;import java.util.TreeMap;public class mostchar {public static void main(String[] args){ List list=new ArrayList(); Set set=new HashSet(); String s="aaabbbcccdddeee"; char[]arr=s.toCharArray(); Map map= new TreeMap(); for(int i=0;i<arr.length;i++){ Integer value=(Integer) map.get(arr[i]); if(value==null) map.put(arr[i], 1); else map.put(arr[i], (Integer)map.get(arr[i])+1); } for(int i=0;i<arr.length;i++){ if((Integer)map.get(arr[i])!=0){ // 把所有的value全部放在list中。 list.add((Integer)map.get(arr[i])); //再对list进行排序,找到value最大的值即:list.get(list.size()-1) Collections.sort(list); // 过滤一下,让value最大的值,进入循环。 if((Integer)map.get(arr[i]) == list.get(list.size()-1)){// 把对应的key放在set中,为了使防止重复。 set.add(arr[i]); } } } Iterator ite=set.iterator(); while(ite.hasNext()){ System.out.println(ite.next()); } }}
或者:
package com.first;import java.util.ArrayList;import java.util.List;import java.util.Map;import java.util.TreeMap;public class mostchar2 {public static void main(String[] args){ String s="aaabbbcccdddeee"; char[]arr=s.toCharArray(); Map map =new TreeMap(); int max=1; List<Character> maxs = new ArrayList<Character>(); //字符数组 for(int i=0;i<arr.length;i++){ Integer value= (Integer)map.get(arr[i]); if(value==null|| value.equals("")|| value==0){ map.put(arr[i], 1); }else{ //如果已经存在这么一个key map.put(arr[i],(Integer)map.get(arr[i])+1); if(max <(Integer)map.get(arr[i])){ max=(Integer)map.get(arr[i]); maxs.removeAll(maxs); maxs.add(arr[i]); }else if(max == (Integer)map.get(arr[i])){ maxs.add(arr[i]); } } } for(Character s1:maxs) System.out.println(s1); }}
如何还有简单的算法 请帮忙提出来
- 找出字符串中重复的字符 打印出来
- 找出字符串中所有重复的字符及其重复次数
- 打印字符串中重复的字符
- 字符串中找出重复出现N次的字符
- 在一个字符串中找出第一次重复出现的字符
- 【算法】字符串中找出第一个不重复的字符
- 找出给定字符串中第一个不重复的字符
- 找出字符串中第一个不重复的字符
- 在字符串中找出第一个不重复的字符
- 将字符串中不同字符的个数打印出来
- 将字符串中不同字符的个数打印出来
- 【原创】打印一个string 字符串中重复字符的次数
- "找出字符串中第一个不重复的字符"和"找出字符串中最后一个重复的字符"的两种方法的C++实现
- 从字符串中找出一个最长的不含重复字符的子字符串
- 从字符串S中找出不包含重复字符的最大连续子字符串长度
- 找出数组中不重复的数并显示出来
- 找出一个字符串中不含重复字符的最长子字符串
- 找出一个字符串中出现的重复的最长的字符子串
- 关于解决Windows Server 2003服务器共享服务自动关闭的问题
- zju 1003 Crashing Balloon( 鸡吧题)
- 解析解与数值解
- OpenVPN性能-当tap遇到bonding
- pthread_timedjoin,pthread_cond_timedwait
- 找出字符串中重复的字符 打印出来
- linux的ln命令
- android布局的各种应用方式
- 谈谈C++类型安全
- 单例模式--双检查机制
- MPC837xE-rdb开发板上DUART的调试
- 学习一种新编程语言的15个练习
- POSIX标准总体分析
- Windows Socket API 编程(上):TCP篇