要求编写代码实现:寻找一个字符串中出现次数最多的字符以及出现的次数。
解法一:用删除法实现 (挺巧妙的一种)
public class FindTheMostAppearChar {
public static void main(String[] args) {
deleteMethodToAchieve();
}
/**
* 用删除法实现 (挺巧妙的)
* 解题思路:每次取出字符串的第一个字符,将字符串中与第一个字符相同的字符全部删掉,
* 然后通过计算删除前后字符串的长度来确定该字符在字符串出现的次数,最终比较出出现次数最多的字符
*/
public static void deleteMethodToAchieve() {
Scanner scanner = new Scanner(System.in);
String string = scanner.nextLine().trim();
scanner.close();
int max_length = 0;
String max_str = "";
while (string.length() > 0) {
String firstChar = string.substring(0,1);
int length = string.length();
string = string.replaceAll(firstChar, "");
if (length - string.length() > max_length) {
max_length = length - string.length();
max_str = firstChar;
}
}
System.out.println("出现次数最多的字符是:" + max_str + ",出现的次数:" + max_length);
}
}
复制代码