Java - 如何使用其名称作为String来更改变量

时间:2017-03-19 17:58:26

标签: java variables character

好吧,也许这有点难以理解。

我试图计算字符串中的所有字母并最终打印所有计数,并且我想知道如何更改循环中字符的数量。

目前它是这样的:

AssetServiceImpl.java

我将所有变量名称作为它们各自代表的一个字符,如: int a = 0,b = 0,c = 0,d = 0,e = 0,f = 0等

在这种情况下如何使用++运算符? line.charAt(iter)给了我一个字符,但是如何将该字符用作变量?

3 个答案:

答案 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()));

其中地图的关键字是字符的整数值。