从char中减去int:可能有损转换int到char

时间:2016-11-10 17:54:10

标签: java types

我试图在典型的加密密钥问题中从char中减去int,但我在以下语句中遇到上述错误:

char ch = (int)encrypted_message.charAt(i) + key[index];
if (ch > 122)
    ch = (int)ch - 26;

key[]数组包含键的数字,类型为int

如何成功旋转char?

请帮忙!

1 个答案:

答案 0 :(得分:4)

int大于char,但您的操作结果是int(您将其存储在char中)。因此,编译器警告您可能会丢失将int值存储到char变量中的信息。

相反,请确保结果为char,这有点令人痛苦,因为+- char值导致int ,所以我们必须施展:

char ch = (char)(encrypted_message.charAt(i) + key[index]);
if (ch > 122)
    ch = (char)(ch - 26);