一个Java中字符串的问题

啊是啊打 2013-09-13 03:06:01

请教各路大神,这种方法是可以求出一个字符串中出现次数最多的字符个次数,但是如果有两个或多个不同字符出现的次数是一样且比其他字符多的时候,怎么把这些字符输出呢
...全文
213 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
linhu007 2013-09-14
  • 打赏
  • 举报
回复
用数组将出现次数最多的字符记录下来,到时直接输出就可以了
逍遥jc 2013-09-13
  • 打赏
  • 举报
回复
这是我们基础考试的一道题。应该不算难。遍历计数即可。
赏金--猎人 2013-09-13
  • 打赏
  • 举报
回复
把max和cm放到 for里面。 可以存到map中map.put(cm,max); 遍历map比较max的值。 return最大的那个
zk3389 2013-09-13
  • 打赏
  • 举报
回复
用一个集合把每次出现字符次数多的保存
安特矮油 2013-09-13
  • 打赏
  • 举报
回复

public static void main(String[] args) {
		System.out.println(doCount("aadsaccdc"));
	}
	
	public static List<Character> doCount(String string){
		List<Character> chars = new ArrayList<Character>();
		char[] cs = string.toCharArray();
		int max = 0;
		List<Character> find = new ArrayList<Character>();
		for(char c : cs){
			int count = 0;
			boolean isFind = false;
			for(Character fc : find){
				if(c == fc.charValue()){
					isFind = true;
					break;
				}
			}
			if(!isFind){
				find.add(c);
				Matcher m = Pattern.compile(String.valueOf(c)).matcher(string);
				while(m.find()){
					count++;
				}
				if(count == max){
					chars.add(c);
				}else if(count > max){
					max = count;
					chars.clear();
					chars.add(c);
				}
			}
		}
		return chars;
	}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧