Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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