2016-11-10 21 views
1

をcharへの可能な非可逆変換int型私は、一般的な暗号重要な問題でのcharからint型を引くしようとしていますが、私は次の文では、上記のエラーに実行しています:減算int型:

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

key[]配列はキーの数字を保持し、タイプはintです。

文字を正しく回転させるにはどうすればよいですか?

助けてください!

+2

あなたの質問は何ですか? 32ビットのデータ型を16ビットのデータ型に合わせようとすると、情報が失われる危険性があります。 JVMの 'boolean'、' byte'、 'char'、' short'のプリミティブがないので、Javaでのすべてのarithmeitc操作は常に少なくともintを生成することに注意してください。 – Turing85

答えて

4

intcharよりも大きいですが、あなたの操作の結果は、(あなたがしてcharに保存しているもの)intを入力されます。コンパイラは、intの値をchar変数に格納する情報が失われる可能性があることを警告します。代わりに

、結果はintchar値の結果と+-ので、痛みのビットですchar、ですので、私たちはキャストする必要があり確認してください。

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