有人可以详细说明以下代码吗?

时间:2018-11-22 13:53:53

标签: java

此代码是我见过的第一个。当最后一行代码仅用(ch[i] - 'a' + 'A')编写时,它如何将所有字符从a变为z变成大写字母,我对此感到好奇。

if (ch[i] >= 'a' && ch[i] <= 'z') { 
    // Convert into Upper-case 
    ch[i] = (char)(ch[i] - 'a' + 'A'); 
} 

1 个答案:

答案 0 :(得分:0)

该行:

ch[i] = (char)(ch[i] - 'a' + 'A'); 

由于大写字母和小写字母形式之间存在恒定差异,因此将ch [i]设置为其关联的大写字母。

对于通讯方式,可以将该行改写为:

ch[i] = (char)(ch[i] + ('A' - 'a'));

通过添加此常数差,该行将产生小写字母的大写字符。