我正在编写一个非常基本的 Java 程序,用于计算句子中每个单词的频率,到目前为止,我设法做了这么多
import java.io.*;
class Linked {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
System.out.println("Enter the sentence");
String st = br.readLine();
st = st + " ";
int a = lengthx(st);
String arr[] = new String[a];
int p = 0;
int c = 0;
for (int j = 0; j < st.length(); j++) {
if (st.charAt(j) == ' ') {
arr[p++] = st.substring(c,j);
c = j + 1;
}
}
}
static int lengthx(String a) {
int p = 0;
for (int j = 0; j < a.length(); j++) {
if (a.charAt(j) == ' ') {
p++;
}
}
return p;
}
}
我已经提取了每个字符串并将其存储在一个数组中,现在问题实际上是如何计算每个“单词”重复的实例数以及如何显示以便重复的单词不会多次显示,你能帮我吗一 ?
原文由 Sigma 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用以单词为键的地图并计为值,像这样
如果您不允许使用 java.util 那么您可以使用一些排序算法对 arr 进行排序并执行此操作
自 Java 8 以来使用 ConcurrentHashMap 的有趣解决方案