Advertisement
Guest User

Untitled

a guest
Sep 25th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.52 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class Cryptogram
  4. {
  5. private static Vector encoded;
  6. private static Vector decoded;
  7. private static String message;
  8. private static Scanner keyboard;
  9. private static boolean noStarLeft;
  10. private static Character letterToBeReplaced;
  11. private static Character charToReplaceWith;
  12. private static boolean invalidTarget;
  13. private static boolean invalidReplace;
  14. private static Character input;
  15. private static boolean isDecoded;
  16.  
  17. public static void main(String[] args) throws MissingLetterException,
  18. InvalidInputException
  19. {
  20. encoded = new Vector();
  21. decoded = new Vector();
  22. message = "A B C '";
  23. keyboard = new Scanner(System.in);
  24. noStarLeft = false;
  25. isDecoded = false;
  26.  
  27. // encoded works fine
  28. for (int i = 0; i < message.length(); i++)
  29. {
  30. Character c = message.charAt(i);
  31.  
  32. // making encoded
  33. encoded.add(c);
  34.  
  35. // now making decoded
  36. if (Character.isLetter(c))
  37. decoded.add((Character) '*');
  38. else
  39. decoded.add(c);
  40. }
  41.  
  42. while (!noStarLeft && !isDecoded)
  43. {
  44. invalidTarget = true;
  45. invalidReplace = true;
  46.  
  47. System.out.println(encoded);
  48. System.out.println(decoded);
  49.  
  50. while (invalidTarget)
  51. {
  52. System.out.print("Pick a letter from encoded message: ");
  53. input = (Character) keyboard.nextLine().toUpperCase().charAt(0);
  54.  
  55. if (encoded.contains(input))
  56. {
  57. letterToBeReplaced = input;
  58. invalidTarget = false;
  59. }
  60. else
  61. {
  62. throw new MissingLetterException(
  63. "Letter was not found in encoded message");
  64. }
  65. }
  66.  
  67. while (invalidReplace)
  68. {
  69. System.out.print("\nReplace with which letter (A-Z, *): ");
  70. input = (Character) keyboard.nextLine().toUpperCase().charAt(0);
  71.  
  72. if (Character.isLetter(input) == true
  73. || input.equals((Character) '*'))
  74. {
  75. charToReplaceWith = input;
  76. invalidReplace = false;
  77. }
  78. else
  79. {
  80. throw new InvalidInputException("Invalid Input.");
  81. }
  82. }
  83.  
  84. for (int j = 0; j < encoded.indexOf(encoded.lastElement()); j++)
  85. {
  86. if (encoded.get(j).equals(letterToBeReplaced))
  87. {
  88. decoded.set(j, charToReplaceWith);
  89. }
  90. }
  91.  
  92. if (decoded.contains((Character) '*'))
  93. noStarLeft = false;
  94. else
  95. {
  96. noStarLeft = true;
  97.  
  98. System.out.print("\nIs the message decoded? ");
  99.  
  100. input = (Character) keyboard.nextLine().toUpperCase().charAt(0);
  101.  
  102. if (input == 'Y')
  103. isDecoded = true;
  104. else
  105. isDecoded = false;
  106. }
  107. }
  108. }
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement