給任意一個字符串找到出現最多的字符並輸出其次數
思路 : 將所有的字符串分開放入一個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);
}
}