如何在Java中对特定单词进行计数?

时间:2016-03-03 01:31:32

标签: java dictionary counter

嘿伙计我正在开发一个项目,我有4个问题,有人可以评价为(好,好,常规和差),之后我需要检查有多少人投票赞成,有多少投票赞成对于4个问题中的每个问题,都是好的,有规律的和差的。所以我想计算检查.txt并计算这个词(伟大的,好的,常规的和差的)多少次。我试图像在Python中那样做,你只需要一个字典(或一个计数器),然后简单地做: dict [" great"] + = 1

但是,用Java完成这项工作是不可能的。有没有人知道任何类似于Java中的方法,或者其他简单方法(无需创建大量变量来保存每个问题的答案)。

非常感谢你的帮助。

2 个答案:

答案 0 :(得分:4)

在java 8中,compute方法已添加到Map接口。它可能比在python中复杂一点,但它可能是最接近python代码的:

Map<String, Integer> map = new HashMap<>();

String rating = ...

map.compute(rating, (key, oldValue) -> ((oldValue == null) ? 1 : oldValue+1));

作为第二个参数传递给compute的lambda表达式接收键映射到第二个参数的旧值或null,如果没有映射。

答案 1 :(得分:2)

这在Java中是100%可能的。

使用HashMap存储值。

例如:

HashMap counts = new HashMap<String, Integer>();

counts.put("great", 0);
counts.put("good", 0);
counts.put("regular", 0);
counts.put("poor", 0);

现在,假设你读了一个字符串input

要增加计数器,请执行以下操作:

counts.put(input, counts.get(input) + 1);

这会使该位置的计数器增加1。

使用counts.get(input)获取输入字符串的计数器。