Overall Requirements Provide a complete program that performs a simple substitut
ID: 3566944 • Letter: O
Question
Overall Requirements
Provide a complete program that performs a simple substitution cipher. The program should take plain text and a shift value and produce the encrypted text. Then it should take encrypted text and a shift value and produce the plain text once again. A different encrypted text and shift can be entered so make sure to get input.
Example: EASTER shifted by 3 to right would become HDVWHU HDVWHU shifted by 3 to left would become EASTER
This is how the early Caesar Cipher worked.
File.java
Provide a main method. It should:
- Get input for a string and a shift value
- Convert to upper case
- Only perform the following items on alphabetic characters between A and Z
- Utilize a for loop which uses postfix incrementing operator
- Convert character to its ASCII equivalent (type cast)
- Shift by shift value entered above
- If you reach end of alphabet, wrap around
- Example: A shifted to the left 2 would become Y
- Convert back to its character equivalent (type cast)
- Output the new character
- Get input for a string and a shift value
- Perform same steps above to convert the encrypted text back to plain text
- Be sure to get input again as a different encrypted text may be entered
- Main method can call separate method to perform encryption/decryption but not required.
Utilize postfix increment/decrement operations and compound assignment operators for all math. Example: x++ or x+=2.
Mimic the sample session precisely.
Sample Session 1:
Please enter text to encrypt
easter
Please enter shift value
3 HDVWHU Please enter text to decrypt
hdvwhu Please enter shift value
-3 EASTER Press any key to continue . . .
Sample Session 2: (Notice spaces removed from input)
Please enter text to encrypt
This Is A Test
Please enter shift value
3 WKLVLVDWHVW
Please enter text to decrypt
WKLVLVDWHVW
Please enter shift value
-3
THISISATEST
Press any key to continue . . .
Sample Session 3: (Notice the different shift and decrypt value)
Please enter text to encrypt
hello
Please enter shift value
3 KHOOR
Please enter text to decrypt
khoor Please enter shift value
-5
FCJJM
Press any key to continue . .
Overall Requirements
Provide a complete program that performs a simple substitution cipher. The program should take plain text and a shift value and produce the encrypted text. Then it should take encrypted text and a shift value and produce the plain text once again. A different encrypted text and shift can be entered so make sure to get input.
Example: EASTER shifted by 3 to right would become HDVWHU HDVWHU shifted by 3 to left would become EASTER
This is how the early Caesar Cipher worked.
File.java
Provide a main method. It should:
- Get input for a string and a shift value
- Convert to upper case
- Only perform the following items on alphabetic characters between A and Z
- Utilize a for loop which uses postfix incrementing operator
- Convert character to its ASCII equivalent (type cast)
- Shift by shift value entered above
- If you reach end of alphabet, wrap around
- Example: A shifted to the left 2 would become Y
- Convert back to its character equivalent (type cast)
- Output the new character
- Get input for a string and a shift value
- Perform same steps above to convert the encrypted text back to plain text
- Be sure to get input again as a different encrypted text may be entered
- Main method can call separate method to perform encryption/decryption but not required.
Utilize postfix increment/decrement operations and compound assignment operators for all math. Example: x++ or x+=2.
Mimic the sample session precisely.
Sample Session 1:
Please enter text to encrypt
easter
Please enter shift value
3 HDVWHU Please enter text to decrypt
hdvwhu Please enter shift value
-3 EASTER Press any key to continue . . .
Sample Session 2: (Notice spaces removed from input)
Please enter text to encrypt
This Is A Test
Please enter shift value
3 WKLVLVDWHVW
Please enter text to decrypt
WKLVLVDWHVW
Please enter shift value
-3
THISISATEST
Press any key to continue . . .
Sample Session 3: (Notice the different shift and decrypt value)
Please enter text to encrypt
hello
Please enter shift value
3 KHOOR
Please enter text to decrypt
khoor Please enter shift value
-5
FCJJM
Press any key to continue . .
Explanation / Answer
import java.lang.*;
import java.util.*;
class Cipher
{
public static void main(String[] args)
{
Scanner stdIn = new Scanner(System.in);
String encryptText; //text to encrypt
int shiftValue; //number of spaces to shift
String decryptText; //text to decrypt
//User enters text to encrypt
System.out.print("Please enter text to encrypt");
encryptText = stdIn.nextLine();
//User enters shift value
System.out.println("Please enter shift value");
shiftValue = stdIn.nextInt();
//System returns encrypted string
String encryptedText = encrypt(encryptText , shiftValue); // text that has been encrypted
System.out.println(encryptedText);
//User enters text to decrypt
System.out.print("Please enter text to decrypt");
decryptText = stdIn.nextLine();
//User enters shift value
System.out.println("Please enter shift value");
shiftValue =stdIn.nextInt();
//System returns decrypted string
String decryptedText = decrypt(decryptText , shiftValue); // text that has been decrypted
System.out.println(decryptedText);
}
//Shift and manipulate characters
public static String encrypt(String enteredText, int shiftValue)
{
String convertedText = "";
for(int i = 0; i< enteredText.length(); i++){
char upperCase = enteredText.charAt(i);
//Convert to upper case letters
upperCase = Character.toUpperCase(upperCase);
int charNumber = upperCase;
//Shift letters and wrap text
int rotateLetters = (charNumber + shiftValue) % 26;
char shiftLetters = (char) rotateLetters;
//Populate new string of characters
convertedText += shiftLetters;
}
return convertedText;
}
//Decryption
public static String decrypt(String enteredText, int shiftValue)
{
int negativeShiftValue = (-1) * (shiftValue);
String decryptedString = encrypt(enteredText , negativeShiftValue);
return decryptedString;
} // end main
} //end class Cipher
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.