2016-11-10 77 views
1

我想在一個典型的加密密鑰的問題從焦炭中減去INT,但我遇到了上述的錯誤在下面的語句:減去INT:可能有損轉換INT爲char

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

key[]數組包含密鑰的數字,類型爲int

如何成功旋轉char?

請幫忙!

+2

什麼是你的問題?如果您嘗試將32位數據類型轉換爲16位數據類型,則存在丟失信息的風險。請注意,由於在JVM中沒有'boolean','byte','char'和'short'的原語,因此Java中的所有算術運算總是會產生至少一個'int'。 – Turing85

回答

4

intchar大,但你操作的結果鍵入int(你正在然後在char存儲)。因此,編譯器警告您可能會丟失將int值存儲到char變量中的信息。

相反,確保結果是char,這是一個有點在int一個痛苦,因爲+-char值的結果,所以我們投:

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