如何计算Java中的特定单词?
How to do a counter of specific words in Java?
大家好,我正在开发一个项目,其中我有 4 个问题,其中有人可以评价为(好、好、普通和差),之后我需要检查有多少人投票为好,有多少人对于 4 个问题中的每一个,都被评为好、正常和差。所以我想计算一下检查 .txt 并计算单词(好、好、普通和差)在上面出现的次数。我试着像在 Python 中那样做,你只需要一本字典(或一个计数器),然后简单地做一些类似的事情:
字典["great"] += 1
但是,在 Java 中无法这样做。有谁知道任何与 Java 中的方法类似的方法,或者另一种简单的方法(无需创建大量变量来保存每个问题的答案)。
非常感谢您的帮助。
这在 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)
获取输入字符串的计数器。
在 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
,如果没有映射。
大家好,我正在开发一个项目,其中我有 4 个问题,其中有人可以评价为(好、好、普通和差),之后我需要检查有多少人投票为好,有多少人对于 4 个问题中的每一个,都被评为好、正常和差。所以我想计算一下检查 .txt 并计算单词(好、好、普通和差)在上面出现的次数。我试着像在 Python 中那样做,你只需要一本字典(或一个计数器),然后简单地做一些类似的事情: 字典["great"] += 1
但是,在 Java 中无法这样做。有谁知道任何与 Java 中的方法类似的方法,或者另一种简单的方法(无需创建大量变量来保存每个问题的答案)。
非常感谢您的帮助。
这在 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)
获取输入字符串的计数器。
在 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
,如果没有映射。