好吧,也许这有点难以理解。
我试图计算字符串中的所有字母并最终打印所有计数,并且我想知道如何更改循环中字符的数量。
目前它是这样的:
AssetServiceImpl.java
我将所有变量名称作为它们各自代表的一个字符,如: int a = 0,b = 0,c = 0,d = 0,e = 0,f = 0等
在这种情况下如何使用++运算符? line.charAt(iter)给了我一个字符,但是如何将该字符用作变量?
答案 0 :(得分:0)
这是不可能的。
要正确地执行此操作,您应使用data.table
。将所有这些字母存储在Map
类型的地图中。然后你可以更新这样的值:
Map<Character, Integer>
答案 1 :(得分:0)
您可以使用int
数组收集计数。
int[] counts = new int[256];
for (int i = 0; i < line.length(); i++){
counts[line.charAt(i)]++;
}
a = counts['a'];
b = counts['b'];
...
答案 2 :(得分:0)
如果你只处理小写字母,你可以保留旧学校“C风格”方法的一系列计数:
int[] counts = new int[26];
然后在你的循环中:
counts[line.charAt(i) - 'a']++;
或者,有更简单的1行方式:
Map<Integer, Long> frequency = line.chars().boxed().collect(Collectors.groupingBy(i -> i, Collectors.counting()));
其中地图的关键字是字符的整数值。