是一个数字类型,这是字符转数字的常用方式。比如:
char ch = '3';
int charNamber = ch-'0'; //charNamber结果为数字型3
假设str="123",i = 1
str.charAt(i) = '2'
str.charAt(i) - '0' = '2' - '0' = 2
ch[2] ++
其实就是对数字个数进行统计
str.charAt(i)是一个char型,减去'0',就相当于把字符转成数字,
如'1'-'0'的结果是整数1
0的ascll码为48,-‘0’就是-48
在 Java 中范围小的数值可以赋值给范围大的数值类型,java 会自动进行类型转换,例如:
char c = 'a';
int i = c;
因此 ch[str.charAt(i) - '0']
等同于 int index = str.charAt(i) - '0'; ch[index]
char 和 int 可以互换