sinat_35322478 2016-07-16 14:57 采纳率: 0%
浏览 1867

找出字符串中重复次数最多的字符及最少的,帮忙看一下我代码的问题

public class A5 {
//定义一个数组,存储次数,数组长度为字符串长度,找出一个字符与每一个都比较,并计数,找出下标次数出现最多的,求其最大值
public static void main(String[]args){
String a1="abasdcalsjdfasf34asfjsfasf";
int[]counts=new int[a1.length()];
for(int i=0;i<a1.length();i++){
char x1=a1.charAt(i);//拿出字符串中一个字符;
int count=0;

for(int j=0;j<a1.length();j++){
char x2=a1.charAt(j);//拿出字符串中一个字符与第一个字符比较。
    if(x1==x2){
    count++;

        }
    }
counts[i]=count;//计数每次出现的次数放到数组counts中;

//System.out.print(counts[i]);

}
int xiabiao1=0;
int max=counts[0];
for(int i=0;i<counts.length;i++){
   if(counts[i]>max){
       max = counts[i];//找出出现最大次数的,并把下标找出。
       xiabiao1=i;
         }
     }

char str=a1.charAt(xiabiao1);//通过下标找内容.
System.out.println("出现次数最多的字符为"+str+",次数最大为"+max);

for(int j=0;j<counts.length;j++){
if(max==counts[j] && str!=a1.charAt(j)){
     max=counts[j];  
       str =a1.charAt(j); 
       continue;
    }

}
System.out.println("出现次数最多的字符为"+str+",次数最大为"+max);
int xiabiao2=0;
int min=counts[0];
for(int i=0;i<counts.length;i++){
   if(counts[i]<min){
 min =counts[i];
  xiabiao2=i;
   }
}

char str1=a1.charAt(xiabiao2);
System.out.println("出现次数最少的字符为"+str1+",次数最少为"+min);
for(int i=0;i<counts.length;i++){
if(counts[i]==min && str1!=a1.charAt(i)){
counts[i]=min;
str1=a1.charAt(i);
continue;
    }

}
System.out.println("出现次数最少的字符为"+str1+",次数最少为"+min);

}
}

  • 写回答

1条回答 默认 最新

  • qq_15953409 2016-07-16 15:24
    关注

    很明显啊,对于存在个数一样多的情况,你没有关注

    评论

报告相同问题?

悬赏问题

  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿