java编程实现字符串中有多个字符出现次数最多的情况

叮咚细语 2013-03-18 11:57:55
编程,随机生成一组字符串,求该字符串中出现次数最多的字符,以及输出该字符和出现的次数。注意解决有多个字符出现次数最多的情况。
我写出来了,但是不完美,输出有多个情况的时候老是会重复出现相同的.
以下是我的代码,求高手改进
import java.util.Random;

public class string {

/**
* @param args
*/
public static void main(String[] args) {
String a=getRandomString(40);
System.out.println("随机生成的字符串为:");
System.out.print(a);
a.trim();
int i=0;
int count[]=new int[65535];
for(i=0;i<65535;i++)
count[i]=0;
for(i=0;i<a.length();i++)
count[a.charAt(i)]++;
int max=count[a.charAt(0)];
char str = a.charAt(0);
for(int j = 0; j < a.length(); j ++)
{ if(max< count[a.charAt(j)])
{
max=count[a.charAt(j)];
str =a.charAt(j);
}
}
System.out.println();
System.out.println("出现次数最多的字符:" + str + " 出现次数:" + max);
for(int j = 0; j < a.length(); j ++)
{ if(max== count[a.charAt(j)] && str !=a.charAt(j))
{
max=count[a.charAt(j)];
str =a.charAt(j);
System.out.println("出现次数最多的字符:" + str+ " 出现次数:" + max); continue;
}
}

}
public static String getRandomString(int length)
{
String str="abcdefghigklmnopkrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ0123456789";
Random random=new Random();
StringBuffer sb=new StringBuffer();
int len=str.length();
for(int i=0;i<length;i++)
{
int number=random.nextInt(len);
sb.append(str.charAt(number));
}
return sb.toString();
}
}

运行结果:
...全文
835 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
失落夏天 2013-03-18
  • 打赏
  • 举报
回复
引用 2 楼 m819177045 的回复:
引用 1 楼 AA5279AA 的回复:在你的程序中加入集合的概念,你应该是遍历输出的,只记录了一个次数而已。 如果用一个map来记录key(字符),value(次数),然后在输出就不会出现这样的情况了。 具体怎么用map?
Map<Stirng,Integer> map=new HashMap<>(); 读到一个字符 如果不存在,则 map.put("字符","次数"); 如果存在,则次数+1
叮咚细语 2013-03-18
  • 打赏
  • 举报
回复
引用 1 楼 AA5279AA 的回复:
在你的程序中加入集合的概念,你应该是遍历输出的,只记录了一个次数而已。 如果用一个map来记录key(字符),value(次数),然后在输出就不会出现这样的情况了。
具体怎么用map?
失落夏天 2013-03-18
  • 打赏
  • 举报
回复
在你的程序中加入集合的概念,你应该是遍历输出的,只记录了一个次数而已。 如果用一个map来记录key(字符),value(次数),然后在输出就不会出现这样的情况了。
叮咚细语 2013-03-18
  • 打赏
  • 举报
回复
大家的建议都不错,不过本人修改自己的代码后也可以完美运行了,谢谢大家的回复.
int max=count[0];
char str =(char)0;
for(int n= 1; n <count.length; n++)  
{  if(max< count[n])  
    {  
        max=count[n];  
        str =(char)n;  
    }  
}
System.out.println("出现次数最多的字符:" + str + " 出现次数:" + max);  
for(int n = 0; n< count.length; n++)  
{  if(max== count[n]&&str!=(char)n)  
    {  
       System.out.println("出现次数最多的字符:" +(char)n+ " 出现次数:" + max);
    }  
}
nmyangym 2013-03-18
  • 打赏
  • 举报
回复
不用集合的话,也可以改一下这部分代码:

        int max=count[a.charAt(0)];
        char str = a.charAt(0);
        for(int j = 0; j < a.length(); j++)
        {
            if(max< count[a.charAt(j)])
            {  
                max=count[a.charAt(j)];  
                //str =a.charAt(j);  
            }//end if  
        }//end for
        System.out.println();
        //System.out.println("出现次数最多的字符:" + str + " 出现次数:" + max);//找到最大数,暂不输出
        //
        //从头判断,只要与最大数相等,就输出,输出后把这个字符的计数清零.
        //
        for(int j = 0; j < a.length(); j ++)
        {
            if(max== count[a.charAt(j)])
            {
                str =a.charAt(j);  
                System.out.println("出现次数最多的字符:" + str+ " 出现次数:" + max);
                count[a.charAt(j)]=0;//这个字符计数清零.
            } 
        }
标题SpringBoot与微信小程序结合的生猪养殖信息化管理系统研究AI更换标题第1章引言介绍生猪养殖信息化管理的研究背景、意义、现状及论文创新点。1.1研究背景与意义阐述生猪养殖信息化管理对提升养殖效率的重要性。1.2国内外研究现状分析国内外生猪养殖信息化管理系统的研究进展。1.3研究方法以及创新点概述SpringBoot与微信小程序结合的技术路径和创新点。第2章相关理论总结SpringBoot框架与微信小程序开发的相关理论。2.1SpringBoot框架理论介绍SpringBoot框架的特点、优势及在Web开发中的应用。2.2微信小程序开发理论阐述微信小程序的开发原理、架构及与后端服务的交互方式。2.3生猪养殖信息化管理理论概述生猪养殖信息化管理的核心概念、流程及需求。第3章系统设计详细介绍基于SpringBoot与微信小程序的生猪养殖信息化管理系统的设计方案。3.1系统架构设计系统的整体架构,包括前端、后端及数据库设计。3.2功能模块设计详细介绍系统的各个功能模块,如养殖管理、数据统计等。3.3数据库设计阐述数据库的设计思路、表结构及关系。第4章系统实现阐述基于SpringBoot与微信小程序的生猪养殖信息化管理系统的实现过程。4.1SpringBoot后端实现介绍后端服务的开发环境、技术选型及实现细节。4.2微信小程序前端实现阐述前端界面的设计、开发及与后端服务的交互。4.3系统集成与测试系统的集成过程、测试方法及结果。第5章研究结果展示系统实现后的效果,包括性能、用户反馈等方面的分析。5.1系统性能分析从响应时间、并发处理等方面分析系统的性能。5.2用户反馈分析收集并分析用户对系统的使用反馈,评估系统的实用性。5.3对比方法分析对比传统生猪养殖管理与信息化管理的差异和优势。第6章结论与展望总结研究成果,提出未来研究方向。6.1研究结论概括系统的主要功能、性能及用户
yolov5 人体姿态异常检测系统代码与完整数据集(优质项目).zip该文件内程序已通过本地测试,可直接执行。用户只需依据说明文档设置运行环境即可使用。项目复杂度适中,内容由教学辅助人员审核,适用于教学及实际应用,具备良好实用性,可放心获取。yolov5 人体姿态异常检测系统代码与完整数据集(优质项目).zip该文件内程序已通过本地测试,可直接执行。用户只需依据说明文档设置运行环境即可使用。项目复杂度适中,内容由教学辅助人员审核,适用于教学及实际应用,具备良好实用性,可放心获取。yolov5 人体姿态异常检测系统代码与完整数据集(优质项目).zip该文件内程序已通过本地测试,可直接执行。用户只需依据说明文档设置运行环境即可使用。项目复杂度适中,内容由教学辅助人员审核,适用于教学及实际应用,具备良好实用性,可放心获取。yolov5 人体姿态异常检测系统代码与完整数据集(优质项目).zip该文件内程序已通过本地测试,可直接执行。用户只需依据说明文档设置运行环境即可使用。项目复杂度适中,内容由教学辅助人员审核,适用于教学及实际应用,具备良好实用性,可放心获取。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!

58,448

社区成员

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

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