Java Code A method encrypt that takes as input an array of the user-defined type
ID: 3697803 • Letter: J
Question
Java Code
A method encrypt that takes as input an array of the user-defined type (a.k.a. object) Letter and a message to encrypt. This method returns the message encrypted.
public static String encryptMessage(Letter[] Keys, String Messages){
// your code goes here
A method decrypt that takes as input an array of the user-defined type (a.k.a. object) Letter and a message to decrypt. This method returns the message decrypted.
public static String decryptMessage(Letter[] Keys, String Messages){
File:
Explanation / Answer
/**
* @author srinu
*
*/
public class Letter {
char character;
int number;
/**
* @param character
* @param number
*/
public Letter(char character, int number) {
this.character = character;
this.number = number;
}
/**
* @return the character
*/
public char getCharacter() {
return character;
}
/**
* @param character
* the character to set
*/
public void setCharacter(char character) {
this.character = character;
}
/**
* @return the number
*/
public int getNumber() {
return number;
}
/**
* @param number
* the number to set
*/
public void setNumber(int number) {
this.number = number;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "Letter [character=" + character + ", number=" + number + "]";
}
}
import java.io.File;
import java.util.Scanner;
/**
*
* @author srinu
*
*/
public class LetterEncDec {
// method encrypt that takes as input an array of the user-defined type
// (a.k.a. object) Letter and a message to encrypt. This method returns the
// message encrypted.
public static String encryptMessage(Letter[] Keys, String Messages) {
String encMessage = "";
for (int i = 0; i < Messages.length(); i++) {
char letter = Messages.charAt(i);
boolean flag = true;
for (int j = 0; j < Keys.length; j++) {
if (Keys[j].getCharacter() == letter) {
flag = false;
encMessage += "" + Keys[j].getNumber();
break;
}
}
if (flag)
encMessage += "" + letter;
}
return encMessage;
}
// A method decrypt that takes as input an array of the user-defined type
// (a.k.a. object) Letter and a message to decrypt. This method returns the
// message decrypted.
public static String decryptMessage(Letter[] Keys, String Messages) {
String decMessage = "";
for (int i = 0; i < Messages.length(); i++) {
char num = Messages.charAt(i);
if (Character.isDigit(num)) {
int number = Integer.parseInt(num + "");
for (int j = 0; j < Keys.length; j++) {
if (Keys[j].getNumber() == number) {
decMessage += "" + Keys[j].getCharacter();
break;
}
}
} else {
decMessage += "" + num;
}
}
return decMessage;
}
/**
* @param args
*/
public static void main(String[] args) {
Scanner scanner = null;
try {
scanner = new Scanner(new File("keyfile.txt"));
String letterStr = "", keyStr = "";
if (scanner.hasNext()) {
letterStr = scanner.nextLine();
}
if (scanner.hasNext()) {
keyStr = scanner.nextLine();
}
String letterStrArr[] = letterStr.split(",");
String keyStrArr[] = keyStr.split(",");
Letter Keys[] = new Letter[10];
for (int i = 0; i < keyStrArr.length; i++) {
Keys[i] = new Letter(letterStrArr[i].charAt(0),
Integer.parseInt(keyStrArr[i]));
}
String Message = "hai";
String encMessage = encryptMessage(Keys, Message);
String decMessage = decryptMessage(Keys, encMessage);
System.out.println("Message :" + Message);
System.out.println("After Encrypted Message :" + encMessage);
System.out.println("After Decryption Message :" + decMessage);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
keyfile.txt
A,a,E,e,I,i,O,o,U,u
0,1,2,3,4,5,6,7,8,9
OUTPUT:
Message :hai
After Encrypted Message :h15
After Decryption Message :hai
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.