我试图在典型的加密密钥问题中从char中减去int,但我在以下语句中遇到上述错误:
char ch = (int)encrypted_message.charAt(i) + key[index];
if (ch > 122)
ch = (int)ch - 26;
key[]
数组包含键的数字,类型为int
。
如何成功旋转char?
请帮忙!
答案 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);