Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- public class Cryptogram
- {
- private static Vector encoded;
- private static Vector decoded;
- private static String message;
- private static Scanner keyboard;
- private static boolean noStarLeft;
- private static Character letterToBeReplaced;
- private static Character charToReplaceWith;
- private static boolean invalidTarget;
- private static boolean invalidReplace;
- private static Character input;
- private static boolean isDecoded;
- public static void main(String[] args) throws MissingLetterException,
- InvalidInputException
- {
- encoded = new Vector();
- decoded = new Vector();
- message = "A B C '";
- keyboard = new Scanner(System.in);
- noStarLeft = false;
- isDecoded = false;
- // encoded works fine
- for (int i = 0; i < message.length(); i++)
- {
- Character c = message.charAt(i);
- // making encoded
- encoded.add(c);
- // now making decoded
- if (Character.isLetter(c))
- decoded.add((Character) '*');
- else
- decoded.add(c);
- }
- while (!noStarLeft && !isDecoded)
- {
- invalidTarget = true;
- invalidReplace = true;
- System.out.println(encoded);
- System.out.println(decoded);
- while (invalidTarget)
- {
- System.out.print("Pick a letter from encoded message: ");
- input = (Character) keyboard.nextLine().toUpperCase().charAt(0);
- if (encoded.contains(input))
- {
- letterToBeReplaced = input;
- invalidTarget = false;
- }
- else
- {
- throw new MissingLetterException(
- "Letter was not found in encoded message");
- }
- }
- while (invalidReplace)
- {
- System.out.print("\nReplace with which letter (A-Z, *): ");
- input = (Character) keyboard.nextLine().toUpperCase().charAt(0);
- if (Character.isLetter(input) == true
- || input.equals((Character) '*'))
- {
- charToReplaceWith = input;
- invalidReplace = false;
- }
- else
- {
- throw new InvalidInputException("Invalid Input.");
- }
- }
- for (int j = 0; j < encoded.indexOf(encoded.lastElement()); j++)
- {
- if (encoded.get(j).equals(letterToBeReplaced))
- {
- decoded.set(j, charToReplaceWith);
- }
- }
- if (decoded.contains((Character) '*'))
- noStarLeft = false;
- else
- {
- noStarLeft = true;
- System.out.print("\nIs the message decoded? ");
- input = (Character) keyboard.nextLine().toUpperCase().charAt(0);
- if (input == 'Y')
- isDecoded = true;
- else
- isDecoded = false;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement