このプログラムを実行すると暗号文の”abcde”の部分がきちんと復号できません。
多分暗号文の”abcde”がマイナスになっているからだと思うのですが、
どのようなプログラムを書けばいいでしょうか?
public class Decrypt { public static void main(String[] args) { int k = 5; // 鍵 String inputText = "fghijklmnopqrstuvwxyzabcde"; //暗号文 String outputText = ""; for(int i=0; i<inputText.length(); i++){ char c = inputText.charAt(i); // cは暗号文のi番目の文字 if ('a'<= c && c <= 'z'){ //cはアルファベット順で何番目か int beforeIndex = c - 'a'; // 逆向きk文字シフトするとアルファベット順で何番目か int afterIndex = (beforeIndex - k) % 26; //cをアルファベット順でafterIndex番目のアルファベットにする c = (char) ('a' + afterIndex); } outputText = outputText + c; } System.out.println(outputText); } }
エラーの実行結果
$ javac Decrypt.java $ java Decrypt abcdefghijklmnopqrstu]^_`
理想の実行結果
$ javac Decrypt.java $ java Decrypt abcdefghijklmnopqrstuvwxyz
回答2件
あなたの回答
tips
プレビュー