首页 > 解决方案 > 在句子字符串数组中查找特定单词并返回特定单词在整个数组中的频率

问题描述

输入是字符串数组,如下所示,

{"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);

标签: javaarraysstringsearchfrequency

解决方案


您可以使用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}

推荐阅读