この学校向けの小さなプロジェクトでは、シーザー暗号を使用しています。実行されるのは、ユーザーが単語をパンチインし、それが文字配列に変換されてから、それぞれのASCII番号に変換されることです。次に、この方程式は各数値に対して実行されます。
new_code =(Ascii_Code + shift [ユーザーが選択する数値])%26
これまでのところ、これが私が書いたコードです:
import javax.swing.*;
import java.text.*;
import java.util.*;
import java.lang.*;
public class Encrypt {
public static void main(String[] args) {
String phrase = JOptionPane.showInputDialog(null, "Enter phrase to be messed with ");
String shift = JOptionPane.showInputDialog(null, "How many spots should the characters be shifted by?");
int shiftNum = Integer.parseInt(shift); //converts the shift string into an integer
char[] charArray = phrase.toCharArray(); // array to store the characters from the string
int[] asciiArray = new int[charArray.length]; //array to store the ascii codes
//for loop that converts the charArray into an integer array
for (int count = 0; count < charArray.length; count++) {
asciiArray[count] = charArray[count];
System.out.println(asciiArray[count]);
} //end of For Loop
//loop that performs the encryption
for (int count = 0; count < asciiArray.length; count++) {
asciiArray[count] = (asciiArray[count]+ shiftNum) % 26;
} // end of for loop
//loop that converts the int array back into a character array
for (int count = 0; count < asciiArray.length; count++) {
charArray[count] = asciiArray[count]; //error is right here =(
}
}//end of main function
}// end of Encrypt class
最後のforループで「精度が低下する可能性がある」と述べています。他にやるべきことはありますか?ありがとうございました!