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 ;
}
}
