为什么charAt运算要-‘0’

xiaolifc / 2023-08-31 / 原文

今天刷算法遇到的一个题里用到了这个运算。不太明白为什么要-0

int digitA = i >= 0 ? a.charAt(i) - '0' : 0; // 当前 a 的取值

查询过后才知道,char运算本质是转换为ASCII码进行运算,'0'在ASCII码中表示48,'0'前面的表示一些符号。减去0得到才是数字,如果不减,可能会得到一些符号。

附ASCII码表