Java,输入一字符串,统计连续出现最多的字符,以及出现次数。 【编程】
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java,输入一字符串,统计连续出现最多的字符,以及出现次数。 【编程】相关的知识,希望对你有一定的参考价值。
参考技术A 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 + "次");
还是没有搞多数输出,你自己改一下,之前没看清,抱歉啦
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());
参考技术C 有这么麻烦吗?按相同的分组不就行了。统计字符2
题目描述
输入英文句子,输出该句子中除了空格外出现次数最多的字符及其出现的次数。
输入
输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行。
输出
逐行输出每个句子中出现次数最多的字符及其出现的次数(如果有多个字符的次数相同,只输出ASCII码最小的字符)。
示例输入
I am a student
a good programming problem
ABCD abcd ABCD abcd
示例输出
a 2
o 4
A 2
分析
比字符统计1难那么一点点 可以建一个a数组 用字母的ASCII码做下标进行计数 这种思想在后面的字符串处理中很常用 如果有多个字符的次数相同,只输出ASCII码最小的字符 如此这个要求就好处理了
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
int a[256],i,max,s;
char c[101];
while(gets(c))
{memset(a,0,sizeof(a));s=0;
for(i=0;c[i]!=0;i++)
{if(c[i]!=‘ ‘)
{
a[c[i]]++;
}
}
max=a[0];
for(i=0;i<256;i++)
{if(max<a[i])
{max=a[i];
s=i;
}
}
printf("%c %d
",s,max);
}
return 0;
}
以上是关于Java,输入一字符串,统计连续出现最多的字符,以及出现次数。 【编程】的主要内容,如果未能解决你的问题,请参考以下文章