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);
}
}