我正在做一个Java程序,但无法理解这行代码的工作方式。
for (int i = 0; i < s1.length(); i++)
a[s1.charAt(i) - 'a']++;
答案 0 :(得分:7)
s1.charAt(i)
返回i
s1的第String
个字符。
假定此字符串仅包含小写字母(即'a'到'z'),s1.charAt(i)-'a'
将字符'a'映射到索引0,将'b'映射到索引1,并且依此类推(“ z”映射到索引25)。
a[s1.charAt(i)-'a']++;
增加一个与字符s1.charAt(i)
相对应的计数器。
因此,此循环计算String
s1
中每个字母的出现次数。
最后,a[0]
将包含'a'的数量,a[1]
将包含'b'的数量,依此类推。
答案 1 :(得分:0)
for(int i=0;i<s1.length();i++)//This line represents loop from 0 to length of s1-1
a[s1.charAt(i)-'a']++;
//s1.chatAt(i) returns the character presents at ith index.
//s1.chatAt(i)-'a' returns (ASCII value of s1.charAt(i) - ASCII value of 'a')