Java,输入一字符串,统计连续出现最多的字符,以及出现次数。 【编程】 20

 我来答
宇阳1992
2012-06-09 · TA获得超过148个赞
知道小有建树答主
回答量:307
采纳率:100%
帮助的人:139万
展开全部
public static void main(String[] args) {
//定义的字符串
String str="aaabbb";
//分割成数组
char[] c=str.toCharArray();
//定义一个记住最大次数的变量
int max=0;
//定义一个保存出现最多次数的字符
char cc = 0;
//循环比较
for(int i=0;i<c.length;i++){
//定义一个中间值
int is=0;

for(int j=0;j<c.length-1;j++){
//比较字符
if(c[i]==c[j+1]){
is++;
}
//比较出现次数大的输出
if(is>max){
max=is;
cc=c[i];
}
}

}
//打印
System.out.println("出现次数最多的是"+cc+",出现"+max+"次");
}
这个代码还有个缺陷,我没搞啦,就是这个只能输出次数做多的最后一个字符,不能打印出出现次数最多的两个字符,那要用到数组循环比较,就是把每个出现的字符的次数保存到一个动态数组里面,也可以用到二维数组,你自己改善一下
追问
。。。我是想问连续出现最多的,“连续”。。。呵呵!但是很谢谢你发来的这段程序~
追答
public static void main(String[] args) {
// 定义的字符串
String str = "aabbccc";
// 分割成数组
char[] c = str.toCharArray();
// 定义一个记住最大次数的变量
int max = 0;
// 定义一个保存出现最多次数的字符
char cc = 0;
// 循环比较
for (int i = 0; i max) {
max = is;
cc = c[i];
}
}
}
// 打印
System.out.println("出现次数最多的是" + cc + ",出现" + max + "次");
}
还是没有搞多数输出,你自己改一下,之前没看清,抱歉啦
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
whatRf
2018-03-08
知道答主
回答量:1
采纳率:0%
帮助的人:895
展开全部

public static void maxcount(String str)

{

char[]chars=str.toCharArray();

char ch=0;

HashMap<Character,Integer> hm=new HashMap();

int max=0;

for(int i=0;i<chars.length;i++)

{

int is=0;

for(int j=1;j<chars.length;j++)

{

if(chars[i]==chars[j])

{

is++;

}

if(max<=is)

{

max=is;

ch=chars[i];

hm.put(ch, max);

}

}

}

int max0=0;

for(Entry<Character, Integer> c:hm.entrySet())

{

if(max0<=c.getValue())

{

max0=c.getValue();

}

}

for(Entry<Character,Integer> c:hm.entrySet())

{

if(max0==c.getValue())

{

System.out.println("连续出现次数:"+c.getValue()+","+c.getKey());

}

}

}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wkshippou
2012-06-17 · 超过11用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:22.5万
展开全部
有这么麻烦吗?按相同的分组不就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式