java - 在句子字符串数组中查找特定单词并返回特定单词在整个数组中的频率
问题描述
输入是字符串数组,如下所示,
{"1112323 400 错误","1112323 400 错误","9988778 400 错误"}
我需要打印时间戳,即句子开头的数字及其在整个数组中的频率
我到现在才到这一步。只有在已知字符串的情况下才能找到该字符串。
int count = 0;
for(int i=str1.length-1;i>=0;i--)
{
String[] ElementOfArray = str1[i].split(" ");
for(int j=0;j<ElementOfArray.length-1;j++)
{
if(ElementOfArray[j].equals("Hi"))
{
count++;
}
}
}
System.out.println(count);
解决方案
您可以使用HashMap
计算时间戳的频率来解决。
import java.util.HashMap;
public class test {
public static void main(String[] args) {
// Create a HashMap object called timeFrequency
HashMap<String, Integer> timeFrequency = new HashMap<String, Integer>();
String []str1 = {"1112323 400 error","1112323 400 error","9988778 400 error"};
for(int i=0;i<str1.length;i++)
{
String[] ElementOfArray = str1[i].split(" ");
if(timeFrequency.containsKey(ElementOfArray[0])){
timeFrequency.put(ElementOfArray[0], timeFrequency.get(ElementOfArray[0]) + 1);
}else{
timeFrequency.put(ElementOfArray[0], 1);
}
}
System.out.println(timeFrequency);
}
}
Output:
{1112323=2, 9988778=1}
推荐阅读
- css - 检查时如何更改输入的背景颜色?
- python - 销毁 Tkinter 图像小部件 (Python) 后的回溯错误
- java - 如何在超类中创建一个返回类型子类的方法
- linux-kernel - 在 v4.13.x 之后使用 netfilter 钩子捕获内核模块中的所有包
- c# - 如何使用 Outlook 插件获取 Outlook 主题的颜色值
- authentication - Cakephp 3.7.x 如何检索用户数据?使用身份验证组件
- c++ - 如何修复 C++ boost http 示例中的“未找到架构 x86_64 的符号”错误
- c# - 禁用 UAC 并通知用户
- python - Django Rest Framework 用户模型序列化器嵌套
- postgresql - 我的交叉表进入功能有问题