找出输入的语句中出现次数最多的单词 JAVA
importjava.util.*;importjava.util.StringTokenizer;publicclassFind_themax_word{publics...
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求各位大神指点 展开
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求各位大神指点 展开
2014-07-04 · 知道合伙人数码行家
关注
展开全部
您好,提问者:
你写的好复杂的说,可以使用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换成数组来保存就能解决
for (int k = 0; k < ar.length; k++) {//就行了
//补充一下,如果里面出现几个单词的数量一样多的都是最大个数,则会打印后出现的那一个。要改的话把sta换成数组来保存就能解决
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是JAVA软件工程师孙成 写的那样,不过 他表现的是出现最多的某一个字母,你可以把
char[] arr = str.toCharArray(); 这句换成,按,或是 空格分割
char[] arr = str.toCharArray(); 这句换成,按,或是 空格分割
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询