首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"ch -‘a“是什么意思?

"ch -‘a“是什么意思?
EN

Stack Overflow用户
提问于 2018-03-05 12:30:10
回答 4查看 6.1K关注 0票数 0

我正在看一段我不能理解的代码。我想和我们的社区确认一下。

在下面的代码中,我不能理解‘a’++行是做什么的。或者我们如何在java7中编写同样的代码。解释说我们有一个字符串s和一个整型数组计数。我们遍历字符串s,计算s中字符的出现次数,并将count的频率放入数组中。请帮帮我!!

代码语言:javascript
复制
String s = "test";
   int[] count = new int[26];        
   for (int i = 0; i < s.length(); i++) {
       char ch = s.charAt(i);
       count[ch-'a']++;                     
   }
EN

回答 4

Stack Overflow用户

发布于 2018-03-05 12:45:05

代码正在尝试计算每个字符出现的次数。

并将其分配为

代码语言:javascript
复制
a occupies position 0
b occupies position 1
etc etc

要获得位置0,您需要调用'a‘- 'a’

要获得位置1,您需要调用'b‘- 'a’

因此,“countch‘a’++;”中发生的事情等同于

代码语言:javascript
复制
int position = ch -'a'; // get position
count[position] = count [position] + 1; // increment the count in that particular position
票数 5
EN

Stack Overflow用户

发布于 2018-03-05 12:36:37

您正在迭代一个int数组count,并递增索引ch-'a'处的整数值,这将产生一个整数值,例如,count['a'-'a'] == count[0]标记该字符存在于字符串中。

ch - 'a'中进行减法是因为字母字符的整数值不是从0开始的。

票数 4
EN

Stack Overflow用户

发布于 2018-03-05 12:34:02

这意味着将这两个字符视为整数,并从另一个字符中减去一个。例如,

代码语言:javascript
复制
'b' - 'a' == 1

在您发布的代码中,它将所有小写字符计数到一个数组数据结构中。换句话说,如果字符串中有许多小写字母‘a’,则计数将非常大;如果字符串中有许多小写字母‘b’,则count1将很大,依此类推。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49103511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档