给任意一个字符串找到出现最多的字符并输出其次数
思路 : 将所有的字符串分开放入一个List集合中然后进行排序,将该字符第一次出现的地方与最后一次出现的地方进行相减然后加一则就可以计算出当前字符出现的次数。
import java.util.*;
public class H6 {
public static void main(String[] args) {
String str = "afhgkjdhghgkshwaaaaabbb";
List<String> list = new ArrayList<>();
//进行遍历将字符串分开放入list集合中
for (int i = 0; i < str.length(); i++) {
list.add(String.valueOf(str.charAt(i)));
}
//将集合进行a-z的顺序排序
list.sort(String::compareTo);
int num = 0;
int temp;
String str3 = null;
//遍历集合的每一个元素
for (int i = 0; i < list.size(); i++) {
int min = list.indexOf(list.get(i));//该元素第一次出现的位置
int max = list.lastIndexOf(list.get(i));//该元素最后一次出现的位置
i = max;//从下一个字符开始遍历,避免重复
temp = max - min + 1;//出现的次数
if (temp == num) {
str3 += list.get(i) + " ";
}
if (temp > num) {
num = temp;
str3 = list.get(i) + " ";
}
}
System.out.println("出现最多的字母是:" + str3 + "\t出现最次数为:" + num);
}
}