For my assignment, I have to write a code to encode/decode a message. I am near the end when I began to discover that whenever I type the message, the program only replaces certain characters. The translation is fairly simple, to encode, you change a to the opposite letter of the alphabet, so z. b to y, c to x, d to w, etc. The Assignment is as follows:
This project involves writing a program that encodes and decodes messages. The program should prompt the user to select whether a message is to be encoded or decoded and then prompts the user to enter the message. A blank space is used to separate each word in the message, and a period (.) is used to denote the end of a sentence. Separate methods must be used to encode and decode the input message. The coding scheme is very simple: the code equivalent for the letter A is Z, for B is Y, … , and for Z is A, as indicated in the following table. As an example, if the user chooses to encode a sentence like hello world, the encoded sentence would be svool dliow.
Here is my code:
import java.util.Scanner ; public class Project1 { public static void main(String[] args) { Scanner input = new Scanner(System.in) ; //prompt user to decide to encode or decode System.out.print("Please enter 1 to encode, or 2 to decode the message: ") ; int promptNumber = input.nextInt() ; if (promptNumber == 1) { System.out.println("You have choosen to encode the message.") ; System.out.print("Please enter the message you wish to be encoded: ") ; String encode = input.next(); encode += input.nextLine(); encode = encodeMessage(encode) ; System.out.println("Your encoded message is now: " + encode) ; } else if (promptNumber == 2) { System.out.println("You have choosen to decode the message.") ; System.out.print("Please enter the message you wish to decode: ") ; String decode = input.next(); decode += input.nextLine(); decode = decodeMessage(decode) ; System.out.println("Your encoded message is now: " + decode) ; } else System.out.println("Please enter a value of 1 or 2.") ; } //method for encoded calculation public static String encodeMessage(String message) { String str = message ; for (int i = 0; i < str.length(); i++) { switch (str.charAt(i)) { case 'a': str = str.replace('a', 'z') ; break ; case 'b': str = str.replace('b', 'y') ; break ; case 'c': str = str.replace('c', 'x') ; break ; case 'd': str = str.replace('d', 'w') ; break ; case 'e': str = str.replace('e', 'v') ; break ; case 'f': str = str.replace('f', 'u') ; break ; case 'g': str = str.replace('g', 't') ; break ; case 'h': str = str.replace('h', 's') ; break ; case 'i': str = str.replace('i', 'r') ; break ; case 'j': str = str.replace('j', 'q') ; break ; case 'k': str = str.replace('k', 'p') ; break ; case 'l': str = str.replace('l', 'o') ; break ; case 'm': str = str.replace('m', 'n') ; break ; case 'n': str = str.replace('n', 'm') ; break ; case 'o': str = str.replace('o', 'l') ; break ; case 'p': str = str.replace('p', 'k') ; break ; case 'q': str = str.replace('q', 'j') ; break ; case 'r': str = str.replace('r', 'i') ; break ; case 's': str = str.replace('s', 'h') ; break ; case 't': str = str.replace('t', 'g') ; break ; case 'u': str = str.replace('u', 'f') ; break ; case 'v': str = str.replace('v', 'e') ; break ; case 'w': str = str.replace('w', 'd') ; break ; case 'x': str = str.replace('x', 'c') ; break ; case 'y': str = str.replace('y', 'b') ; break ; case 'z': str = str.replace('z', 'a') ; break ; case ' ': continue ; case '.': break ; } } return str ; } //method for decoded calculation public static String decodeMessage(String message) { String str = message ; for (int i = 0; i < str.length(); i++) { switch (str.charAt(i)) { case 'a': str = str.replace('a', 'z') ; break ; case 'b': str = str.replace('b', 'y') ; break ; //Error case 'c': str = str.replace('c', 'x') ; break ; case 'd': str = str.replace('d', 'w') ; break ; //Error case 'e': str = str.replace('e', 'v') ; break ; case 'f': str = str.replace('f', 'u') ; break ; case 'g': str = str.replace('g', 't') ; break ; case 'h': str = str.replace('h', 's') ; break ; case 'i': str = str.replace('i', 'r') ; break ; case 'j': str = str.replace('j', 'q') ; break ; case 'k': str = str.replace('k', 'p') ; break ; case 'l': str = str.replace('l', 'o') ; break ; //Error case 'm': str = str.replace('m', 'n') ; break ; case 'n': str = str.replace('n', 'm') ; break ; case 'o': str = str.replace('o', 'l') ; break ; case 'p': str = str.replace('p', 'k') ; break ; case 'q': str = str.replace('q', 'j') ; break ; case 'r': str = str.replace('r', 'i') ; break ; case 's': str = str.replace('s', 'h') ; break ; case 't': str = str.replace('t', 'g') ; break ; case 'u': str = str.replace('u', 'f') ; break ; case 'v': str = str.replace('v', 'e') ; break ; case 'w': str = str.replace('w', 'd') ; break ; case 'x': str = str.replace('x', 'c') ; break ; case 'y': str = str.replace('y', 'b') ; break ; //Error case 'z': str = str.replace('z', 'a') ; break ; case ' ': continue ; case '.': break ; } } return str ; } } 