【发布时间】:2021-12-13 05:56:20
【问题描述】:
所以我正在尝试完成这段代码。目标是输入一个字符串数组,然后计算找到单词的频率。例如:
输入:
joe
jim
jack
jim
joe
输出:
joe 2
jim 2
jack 1
jim 2
joe 2
必须为字符串选择一个数组,而为词频选择另一个数组。
到目前为止我的代码:
我一直在尝试实现这一点。设置了字符串方法,但是我将如何计算单词的频率,并将这些值分配给数组。然后并排打印。我知道一旦设置了整数数组。我们可以简单地执行一个 for 循环来将这些值一起打印,例如。 System.out.println(String[i] + " " + countarray[i]);
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);
}
}
}
【问题讨论】:
-
这将使用字符串。
-
同样的想法。而不是
==使用.equals() -
我很困惑,我去了这个线程,但问题中没有标记答案。字符串已存储。我需要能够将频率存储到另一个数组中。那没有t 回答我的问题。我需要创建另一个数组,但我希望能够检查字符串数组并使用字符串重复的频率更新每个数组条目。