Java-如何以字符串形式更改变量名
好吧,也许这有点难理解 我试图计算字符串中的所有字母,并最终打印所有计数,我想知道如何更改循环中字符的计数 目前情况是这样的:Java-如何以字符串形式更改变量名,java,variables,character,Java,Variables,Character,好吧,也许这有点难理解 我试图计算字符串中的所有字母,并最终打印所有计数,我想知道如何更改循环中字符的计数 目前情况是这样的: for (int i = 0; i<line.length();i++){ line.charAt(i)++; } // assumming your data looks like this: Map<Character, Integer> map = new HashMap<>(); map.put('a', 0); map.
for (int i = 0; i<line.length();i++){
line.charAt(i)++;
}
// assumming your data looks like this:
Map<Character, Integer> map = new HashMap<>();
map.put('a', 0);
map.put('b', 0);
// etc..., you should probably init these in a loop
// then you can do
for (int i = 0; i<line.length();i++){
map.compute(line.charAt(i), i -> i+1);
}
for(int i=0;i这是不可能的
要正确执行此操作,您应该使用映射
。将所有这些字母存储在映射
类型的映射中。然后您可以像这样更新值:
for (int i = 0; i<line.length();i++){
line.charAt(i)++;
}
// assumming your data looks like this:
Map<Character, Integer> map = new HashMap<>();
map.put('a', 0);
map.put('b', 0);
// etc..., you should probably init these in a loop
// then you can do
for (int i = 0; i<line.length();i++){
map.compute(line.charAt(i), i -> i+1);
}
//假设您的数据如下所示:
Map Map=newhashmap();
地图放置('a',0);
地图放置('b',0);
//等等,您可能应该在循环中初始化这些
//那你就可以了
对于(int i=0;i i+1);
}
您可以使用int
数组收集计数
int[] counts = new int[256];
for (int i = 0; i < line.length(); i++){
counts[line.charAt(i)]++;
}
a = counts['a'];
b = counts['b'];
...
int[]计数=新的int[256];
对于(int i=0;i
如果您只处理小写字母,您可以保留一个计数数组,用于老式的“C风格”方法:
int[] counts = new int[26];
然后在循环中:
counts[line.charAt(i) - 'a']++;
或者,还有更简单的单线方式:
Map<Integer, Long> frequency = line.chars().boxed().collect(Collectors.groupingBy(i -> i, Collectors.counting()));
Map frequency=line.chars().boxed().collect(Collectors.groupingBy(i->i,Collectors.counting());
其中,映射的键是字符的整数值。如果这是Java问题,则不要将其标记为C。您需要增加变量计数,而不是字符串。我建议使用而不是变量。