哈希表问题:只需先将字符串全部小写再将非字母和数字的字符转话为空格,再按空格分割,得到输入的数组,用哈希表 键:字符名 值:次数存储,再将最高次数的取出放入列表按照字符串大小排序即可
注:max_count初始为1因为至少有一个word
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main{
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(System.in));
String input[]=bufferedReader.readLine().toLowerCase().replaceAll("[^a-z0-9]+", " ").split(" ");
HashMap<String,Integer>wordmap=new HashMap<>();
int cur_count=0,max_count=1;
for (int i=0;i<input.length;i++){
if (wordmap.containsKey(input[i])){
cur_count=wordmap.get(input[i])+1;
wordmap.put(input[i],cur_count);
if (cur_count>max_count){
max_count=cur_count;
}
}else {
wordmap.put(input[i],1);
}
}
ArrayList<String>ans=new ArrayList<>();
for (String str:wordmap.keySet()){
if (wordmap.get(str)==max_count){
ans.add(str);
}
}
Collections.sort(ans);
System.out.println(ans.get(0)+" "+max_count);
}
}