java基本程序问题,寻找一个输入语段中出现最多次的单词,然后输出出现最多次的单词和出现的次数。
需要用两个方法:1.staticpublicintonList(Stringword,String[]list){返回找到词的index,如果没有找到这个词,返回-12....
需要用两个方法:
1. static public int onList(String word, String[] list) {
返回找到词的index,如果没有找到这个词,返回-1
2. static public int mostFrequent(int[] list) {
返回array中最大的数的位置
要求使用平行 array,并把句子中所有字母转为小写,输入的句子需要多行
谢谢您的帮助! 展开
1. static public int onList(String word, String[] list) {
返回找到词的index,如果没有找到这个词,返回-1
2. static public int mostFrequent(int[] list) {
返回array中最大的数的位置
要求使用平行 array,并把句子中所有字母转为小写,输入的句子需要多行
谢谢您的帮助! 展开
2个回答
展开全部
你好,看你的要求估计你们没有学集合,所以就给你写了个数组的:
public class Words {
static public int mostFrequent(int[] list) {
int max = 0 ;
int index = 0 ;
for(int i=0;i<list.length;i++){
if(max < list[i]){
max = list[i] ;
index = i ;
}
}
return index ;
}
static public int onList(String word, String[] list) {
for(int i=0;i<list.length;i++){
if(word.equals(list[i])){
return i ;
}
}
return -1 ;
}
public static void main(String[] args) {
String str = "my sister ha ha,She me love to get set Me my girl tree me" ; //测试的,这个你可以随意
String[] words = str.toLowerCase().replace('.',' ').replace(',',' ').replace(" ", " ").split(" ") ;
int len = words.length ;
//考虑到二维数组不方便所以这里使用两个数组,二者之间是一一对应的
int[] count = new int[len] ;
String[] ss = new String[len] ;
for (int i=0;i<words.length;i++) {
String word = words[i].trim();
int f = onList(word,words) ;
if(f == -1){
ss[i] = word ;
count[i] = 1 ;
}else{
ss[f] = word ;
count[f] += 1;
}
}
int index = mostFrequent(count) ;
System.out.println("出现次数最多的单词是:" + ss[index] + "出现的次数为:" + count[index]);
}
}
public class Words {
static public int mostFrequent(int[] list) {
int max = 0 ;
int index = 0 ;
for(int i=0;i<list.length;i++){
if(max < list[i]){
max = list[i] ;
index = i ;
}
}
return index ;
}
static public int onList(String word, String[] list) {
for(int i=0;i<list.length;i++){
if(word.equals(list[i])){
return i ;
}
}
return -1 ;
}
public static void main(String[] args) {
String str = "my sister ha ha,She me love to get set Me my girl tree me" ; //测试的,这个你可以随意
String[] words = str.toLowerCase().replace('.',' ').replace(',',' ').replace(" ", " ").split(" ") ;
int len = words.length ;
//考虑到二维数组不方便所以这里使用两个数组,二者之间是一一对应的
int[] count = new int[len] ;
String[] ss = new String[len] ;
for (int i=0;i<words.length;i++) {
String word = words[i].trim();
int f = onList(word,words) ;
if(f == -1){
ss[i] = word ;
count[i] = 1 ;
}else{
ss[f] = word ;
count[f] += 1;
}
}
int index = mostFrequent(count) ;
System.out.println("出现次数最多的单词是:" + ss[index] + "出现的次数为:" + count[index]);
}
}
追问
您好,请问一下如果想根据用户的输入语句,找到出现次数最多的词,要怎么办呢?
如果在输入多行字符的情况下,在输入"."(点)的时候退出,需要怎样修改?
多谢!
问题已经解决,加入scanner即可,多谢!
展开全部
static public Integer onList(String word, String[] list) {
int index=-1;
word=word.toLowerCase();
String item="";
List l=new ArrayList();
for (int i = 0; i < list.length; i++) {
item=list[i].toLowerCase(); //将数组的每一个值转为小字
list[i]=item; //再存进数组里面
l.add(list[i]);
if(word.equals(item)){
index=i;
}
}
return index;
}
static public int mostFrequent(int[] list) {
List<Integer> arr = new ArrayList<Integer>();
for (int i = 0; i < list.length; i++) {
arr.add(list[i]);
}
int index = -1;
for (int i = 0; i < arr.size(); i++) {
if (arr.get(i) == Collections.max(arr)) {
index = i;
}
}
return index;
}
int index=-1;
word=word.toLowerCase();
String item="";
List l=new ArrayList();
for (int i = 0; i < list.length; i++) {
item=list[i].toLowerCase(); //将数组的每一个值转为小字
list[i]=item; //再存进数组里面
l.add(list[i]);
if(word.equals(item)){
index=i;
}
}
return index;
}
static public int mostFrequent(int[] list) {
List<Integer> arr = new ArrayList<Integer>();
for (int i = 0; i < list.length; i++) {
arr.add(list[i]);
}
int index = -1;
for (int i = 0; i < arr.size(); i++) {
if (arr.get(i) == Collections.max(arr)) {
index = i;
}
}
return index;
}
追问
也感谢您!抱歉我没有多余的分数了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询