找出输入的语句中出现次数最多的单词 JAVA

import java.util.*;
import java.util.StringTokenizer;
public class Find_themax_word {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
String str=in.nextLine();
Find(str);
}

public static void Find(String st){
int len=0;
StringTokenizer stp = new StringTokenizer(st);
String []array=new String[stp.countTokens()];
int []ar=new int[stp.countTokens()];
/*for(int p=0;p<stp.countTokens();p++)
ar[p]=0;*/
while(stp.hasMoreTokens()){
String key=stp.nextToken();
array[len]=key;
len++;
}
System.out.print(len);
for(int i=0;i<len;i++){
for(int j=i+1;j<len;j++){
if(array[i].equals(array[j])){
ar[i]++;}}

//System.out.print(array[i]);}}
}

int max=0; String sta=" ";
for(int k=0;k<stp.countTokens();k++){
if(ar[k]>=max){
max=ar[k];
sta=array[k];
}
}
System.out.print(sta);

}}

我觉得是对的,但是就是不显示结果,初学JAVA求各位大神指点

您好,提问者:
    你写的好复杂的说,可以使用HashMap啊,例如如下代码:

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Demo {
    public static void main(String[] args) throws Exception {
        Scanner in=new Scanner(System.in);
       如告 String str=in.nextLine();
        char ch = getMaxChar(str);
        System.out.println("出现最多的是:"+ch);
    }
  陆橡档  private static char getMaxChar(String str){
        char[] arr = str.toCharArray();
        Map<Character,Integer> map = new HashMap<Character,Integer>();
        int maxValue = 0;
        char maxKey = 0;
        for(int i = 0; i < arr.length; i++){
            Integer num = map.get(arr[i]);
            if(num==null)
                map.put(arr[i], 1);
            else{
                map.put(arr[i],++num);
                if(maxValue < map.get(arr[i])){
                    maxValue = map.get(arr[i]);
       早乱             maxKey = arr[i];
                }
            }
        }
        System.out.println(maxKey+":"+maxValue);
        return maxKey;
    }
}

//打印结果:

asdasdasdasdasdasdasd
a:7
出现最多的是:a


for(int k=0;k<stp.countTokens();k++){ //这句话里的stp.countTokens()长度为型梁棚0,改成
for (int k = 0; k < ar.length; k++) {//就行了
//补充一下,如果里面出现几个单词的数量一样多的都是最大个数,则会打印卜则后出现的那渣陆一个。要改的话把sta换成数组来保存就能解决
是JAVA软厅凳件工程师孙成扮态旅 写的那样,不过 他表现的是出现最多的某一个字母,你可以把闭岁
char[] arr = str.toCharArray(); 这句换成,按,或是 空格分割