使用一个数组输入字符串,另一个数组输出词频



所以我试图完成这个代码。目标是输入一个字符串数组,然后计算单词出现的频率。例如:

输入:

joe 
jim 
jack
jim
joe

输出:

joe 2
jim 2
jack 1
jim 2
joe 2

必须为字符串选择一个数组,为词频选择另一个数组。

我的代码:

我被困在试图实现这个。string方法已经设置好了,但是我要如何计算单词出现的频率,并将这些值赋给一个数组。然后并排打印。我知道一旦整型数组设置好。我们可以简单地执行一个for循环来将这些值打印在一起,例如。system . out。println(String[i] + ";+ countarray[我]);

public class LabClass {
public static int getFrequencyOfWord(String[] wordsList, int listSize, String currWord) {
int freq = 0;
for (int i = 0; i < listSize; i++) {
if (wordsList[i].compareTo(currWord) == 0) {
freq++;
}
}
return freq;
}
public static void main(String[] args) {
LabClass scall = new LabClass();
Scanner scnr = new Scanner(System.in);
// assignments 
int listSize = 0;
System.out.println("Enter list Amount");
listSize = scnr.nextInt();
// removing line to allow input of integer
int size = listSize;   // array length
// end of assignments
String[] wordsList = new String[size];  // string array
for (int i = 0; i < wordsList.length; i++) {  //gathers string input
wordsList[i] = scnr.nextLine();
}
for (int i = 0; i < listSize; i++) {
String currWord = wordsList[i];
int freqCount = getFrequencyOfWord(wordsList, listSize, currWord);
System.out.println(currWord + " " + freqCount);
}
}
}    
int some_method(String[] arr, String word) {
int count = 0;
for (int i=0; i<arr.size(); i++) {
if (arr[i].equals(word)) count++;
}
return count;
}

Then in main method:

String[] array = ["joe", "jake", "jim", "joe"] //or take from user input
int[] countArray = new int[array.size()]
for (int i=0; i<array.size(); i++) {
countArray[i] = some_method(array, array[i])    
}
System.out.println(array[0] + " " + countArray[0]);

输出:乔2

最新更新