2012-10-17 27 views
-2

我有得到這個工作,我需要指出了正確的方向麻煩。用戶將輸入一個命令行整數來確定字符將被旋轉多少個地方。我的問題是,我希望所有小寫和大寫保持相同的情況,並保持空格和特殊字符不變,只按指定的整數旋轉字母。我需要確保,例如:整數集是1,字符「Z」被輸入到要加密的字符串中,它需要繞回到「A」而不是轉到下一個ASCII字符「[」I一直在嘗試使用「%」運算符,但我可能會錯誤地使用它。我不是找人寫整個代碼對我來說,我知道我可以通過看工作程序的源代碼中找到我的答案,但我想通過自己的身影儘可能多的這一點,但現在我很爲難並需要一點幫助。謝謝!凱撒暗號問題

我終於得到它的工作,我有整個操作錯了,這是爲我工作。

char encrypt = ('A' + (((input[i] - 'A') + key) % 26)); 

我試圖

char encrypt (input[i] + key) % 26; 

感謝您的快速解答之前!

+0

使用模(''%)操作,使移位的循環和使用'if'處理特殊情況 – aland

+2

如果你不希望別人寫你的代碼爲你,我會建議您展示嘗試什麼,如何展示它沒有工作。你能粘貼到目前爲止你嘗試過的嗎?解釋你卡在哪裏? –

回答

0

雖然有很多方法來完成你想要什麼,我建議你看看java.util.Map。決定,如果這是一個加密Map或解密Map和「放」在輸入字符作爲密鑰,並且輸出字符作爲值。然後,當您需要翻譯時,您只需遍歷每個待翻譯的字符並組合輸出值即可。注意未映射的值(因爲它們在查找時會返回null)。