sc.next().charAt(i) - ‘0‘语句是什么意思

       在练习算法时发现有的题解出现sc.next().charAt(i) - '0',开始并不明白其具体含义,经过学习后发现: 

       charAt(i) 返回字符串 s 中索引为 i 的字符,'0' 是字符常量 0 的 ASCII 码值, 0 的 ASCII 码值是 48(十进制),或者 0 x 30 (十六进制)。通过将 s.charAt(i) 减去 '0' ,可以将代表数字字符的 ASCII 码值转换为实际的数字值。

       例如,字符 '5' 的ASCII码值为 53 ,但是表达式 '5' - '0' 的结果为5。

又比如下面这段代码:

// String s = sc.next();
// arr[i][j] = s.charAt(j) - '0';

arr[i][j] = sc.next().charAt(j) - '0';

       这段代码是将 Scanner 对象 sc 读取的下一个字符串转换为字符数组后提取其中的第 j 个字符,并将其转换为数字,存储在二维数组 arr 的第 i 行第 j 列中。

需要注意的是:

       char 类型可以用于存储 ASCII 码表示的字符,但是char类型本身并不代表 ASCII 码。在使用    char 类型进行运算时,实际上是对其所代表的 ASCII 码值进行运算。因此,可以说 char 运算使用的是 ASCII 码值,而不是 ASCII 码本身。

(1)(2)

如果对你有帮助,可以点个赞吗!

猜你喜欢

转载自blog.csdn.net/m0_56426418/article/details/129940572