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 + "次");

还是没有搞多数输出,你自己改一下,之前没看清,抱歉啦

参考技术B

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,输入一字符串,统计连续出现最多的字符,以及出现次数。 【编程】的主要内容,如果未能解决你的问题,请参考以下文章

输入一排字符串,然后统计字符串中出现最多的字符

Java获取字符串中字母出现的个数

js统计一段字符串中出现次数最多的字符

JAVA 编程,输入一串字符,找出出现最多的字符

java一个字符串中出现次数最多的字符以及次数

29:统计字符数