初学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']++ 的工作原理!!! 展开
程序:
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']++ 的工作原理!!! 展开
1个回答
展开全部
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
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询