初学Java,看到一例题如下,求大神详细讲解其中 a[s.charAt(i)-'0']++ 的工作原理

要求:统计字符串中‘0’到‘9’的各个数字的个数。程序:publicclassDg{publicstaticvoidmain(Stringargs[]){Strings=... 要求:统计字符串中‘0’到‘9’的各个数字的个数。
程序:
public class Dg{
public static void main (String args[]){
String s="91254782354987012345978";
int a[]=new int[10];
for(int i=0;i<s.length();i++){
a[s.charAt(i)-'0']++;
}
for(int j=0;j<10;j++)
System.out.printf(j+":"+a[j]+" ");
}
}

输出结果:
---------- 运行 ----------
0:1 1:2 2:3 3:2 4:3 5:3 6:0 7:3 8:3 9:3
Output completed (0 sec consumed) - Normal Termination

初学Java,看到一例题如下,求大神详细讲解其中 a[s.charAt(i)-'0']++ 的工作原理!!!
展开
 我来答
308xiaobao
高粉答主

2016-07-27 · 每个回答都超有意思的
知道大有可为答主
回答量:2.6万
采纳率:95%
帮助的人:2621万
展开全部
91254782354987012345978,遍历一遍

s.charAt(i)-'0',‘9’-‘0’=9 ,‘1’-‘0’=1·······

a[9]出现了3次自增所以值是3
a[8]出现了3次自增所以值是3
a[7]出现了3次自增所以值是3
a[6]没有出现自增,只能等于默认值0
a[5]出现了3次自增所以值是3
a[4]出现了3次自增所以值是3
a[3]出现了2次自增所以值是2
a[2]出现了3次自增所以值是3
a[1]出现了2次自增所以值是2
a[0]出现了1次自增所以值是1
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式