In this little project for school, I am doing a Caesar cipher. What will be done is that the user will punch in a word, and it will be converted to an character array, then into its respective ascii numbers. Then this equation will be performed upon each number:
new_code = (Ascii_Code + shift[A number that the user picks out]) % 26
So far, here is the code I've written out:
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
It is mentioning a "possible loss of precision" in the last for loop. Is there something else I'm supposed to do? Thank you!