当前位置: 首页 > 知识库问答 >
问题:

计算java中每分钟出现的次数

呼延俊风
2023-03-14

我正在尝试获取每分钟出现数据的次数。日期看起来是这样的。第一个数字是一个整数,表示自Unix纪元以来的秒数,我将其转换为ISO 8601时间。第二个数字是双精度的。以“00”结尾的时间代表第0分钟,以“60”结尾的时间代表第1分钟。

962668800 60.5
962668801 61.5
962668860 71.5

代码:

 public static void main(String args[] ) throws Exception {
            Scanner s = new Scanner(System.in);
            int count = 0;
            System.out.print("New minute found: ");

            while (s.hasNextLine()){
                int request = s.nextInt();
                double response = s.nextDouble();

                DateTimeFormatter d = secToDate(request); 
                int i = ldt.getSecond();

                if (i == 0){
                    System.out.print(count + " " + ldt.format(d) + "\n");
                    System.out.print("New Minute found: ");
                }else{
                    count++;
                }


            }
        } 

我的输出是这样的:

New minute found: 0 2000-07-04T00:00:00Z
New Minute found: 1 2000-07-04T00:01:00Z
New Minute found: 

但我正在寻找类似下面的东西(忽略新的分钟找到的文本)

2000-07-04T00:00:00Z 2
2000-07-04T00:01:00Z 1

我如何调整它,以便我跟踪当前分钟并添加到计数器,而不会过早地打印出计数器?

共有1个答案

邵耀
2023-03-14

我如何调整它,以便跟踪当前分钟并添加到计数器,而不会过早打印出计数器?

你不要调整它。你用一个更好的设计重新开始。你的方法只有13行,但已经做得太多了。你的问题是你把计算和显示混为一谈了。

因为你这样做会很痛,所以不要再这样做了。你只有13行;现在是重新开始的好时机。

编写具有此签名的方法:

private static Dictionary<String, Integer> getMinuteCounts() { ... }

这种方法只做一件事,而且只做一件事。它计算一个字典,该字典将表示分钟的字符串映射到观察到的分钟数。它绝对没有别的。

现在编写一个具有此签名的方法:

private static void displayMinuteCounts(Dictionary<String, Integer> d) { ... }

该事物只做一件事:它显示计算的计数。

现在您的主要方法体是:

displayMinuteCounts(getMinuteCounts());

简而言之:通过将您的程序分解为方法来解决您的问题,每个方法都能很好地完成一件事,并且不尝试做任何其他事情。

 类似资料:
  • 问题内容: 我正在尝试计算中每行显示的数字,例如: 行显示3次。 一个简单的天真的解决方案将涉及将我所有的行都转换为元组,然后应用,如下所示: 产生: 但是,我担心我的方法的效率。也许有一个提供此功能的内置库。我将此问题标记为,因为我认为它可能具有我正在寻找的工具。 问题答案: 您可以使用另一个问题的答案来获得唯一项目的计数。 使用结构化数组的另一种选择是使用一种void类型的视图,该视图将整行连

  • 本文向大家介绍C++计算每个字符出现的次数,包括了C++计算每个字符出现的次数的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C++计算每个字符出现的次数的实现代码,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助。

  • 问题内容: 如果我有英文文章或英文小说,并且想计算每个单词出现多少次,用Java编写的最快算法是什么? 有人说您可以使用Map ()完成此操作,但我想知道如何知道关键字是什么?每篇文章都有不同的词,您如何知道“关键”词,然后在其数量上加上一个? 问题答案: 这个数字“我是”只是一个字

  • 问题内容: 我正在编写一个项目,该项目从.java文件中捕获Java关键字,并使用地图跟踪事件的发生。过去,我已经成功地使用了类似的方法,但是我似乎无法为我的预期用途采用这种方法。 该代码块应该将关键字添加到键,并在每次出现相同的键时递增该值。到目前为止,它添加了关键字,但是未能正确增加该值。这是一个示例输出: 基本上,它会增加映射中的每个值,而不是应该增加的值。我不确定我是否对此考虑过多。我尝试

  • 我已经将代码中的read整数修复为不再是I而是一个单独的变量“index”,并理解为什么我会收到Over Ofbound异常,但我有点厚,不明白如何在添加哨兵值0的同时修复它。

  • 问题内容: 我有一个看起来像这样。 对于此数据帧中的每一行,我想计算C1,C2,C3中每一个的出现次数,并将此信息作为列附加到此数据帧中。例如,第一行具有1 C1、0 C2和0 C3。最终数据帧应如下所示 因此,我创建了一个以C1,C2和C3作为值的系列- 一种最重要的方法是在DataFrame的行和列上循环,然后在该Series上循环,并在计数器匹配时递增计数器。但是,有没有一种方法可以以紧凑的