
解法一:双重循环
代码奉上:
java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Scanner;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
int len = str.length();
int maxCount = 0;
char mostFrequency= str.charAt(0);
for(int i =0 ; i<len ; i++){
char ch = str.charAt(i);
int currentCount = 0;
for(int j = 0 ; j<len ; j++){
if(str.charAt(j) == ch ){
currentCount++;
}
}
if(currentCount>maxCount){
maxCount = currentCount;
mostFrequency = str.charAt(i);
}
}
System.out.println(mostFrequency);
System.out.println(maxCount);
}
}
解法二:ASCLL码值
27可改为26,更加高效。
第一个for循环是为了遍历每一个字符,并给每一个字符计数
第二个for循环是为了找出计数最多的字符,并记录最大数量和字符
java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
int[] n = new int[27];
int maxCount = 0;
char mostFrequency = str.charAt(0);
for(int i = 0 ; i < str.length() ; i++){
n[str.charAt(i) - 'a']++;
}
for(int j = 0 ; j < 26 ; j++){
if(n[j]>maxCount){
maxCount = n[j];
mostFrequency = (char)('a'+j);
}
}
System.out.println(mostFrequency);
System.out.println(maxCount);
}
}