Didart

The Imitation Game

Oct 15th, 2021
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.50 KB | None | 0 0
  1. import java.util.Scanner;
  2.  
  3. public class TheImitationGame {
  4.     public static void main(String[] args) {
  5.         Scanner scanner = new Scanner(System.in);
  6.  
  7.         String encryptedMessage = scanner.nextLine();
  8.  
  9.         StringBuilder newMessage = new StringBuilder();
  10.         newMessage.append(encryptedMessage);
  11.  
  12.         String input = scanner.nextLine();
  13.  
  14.         while (!"Decode".equals(input)){
  15.             String[] tokens = input.split("\\|");
  16.             String command = tokens[0];
  17.  
  18.             switch (command){
  19.                 case "Move":
  20.                     int numberOfLetters = Integer.parseInt(tokens[1]);
  21.                     newMessage = moveCommand(newMessage, numberOfLetters);
  22.  
  23.                     break;
  24.                 case "Insert":
  25.                     int index = Integer.parseInt(tokens[1]);
  26.                     String value = tokens[2];
  27.  
  28.                     newMessage = insertValue(newMessage, index, value);
  29.  
  30.                     break;
  31.                 case "ChangeAll":
  32.                     String substring = tokens[1];
  33.                     String newValue = tokens[2];
  34.  
  35.                     newMessage = changeAll(newMessage, substring, newValue);
  36.  
  37.                     break;
  38.             }
  39.  
  40.             input = scanner.nextLine();
  41.         }
  42.  
  43.         System.out.println(String.format("The decrypted message is: %s", newMessage));
  44.  
  45.     }
  46.  
  47.     public static StringBuilder moveCommand(StringBuilder message, int numberOfLetters){
  48.  
  49.         StringBuilder newMessage = new StringBuilder();
  50.         newMessage.append(message.substring(numberOfLetters));
  51.         newMessage.append(message.substring(0, numberOfLetters));
  52.  
  53.         return newMessage;
  54.     }
  55.  
  56.     public static StringBuilder insertValue(StringBuilder message, int index, String value){
  57.         String firstSubstring = message.substring(0, index);
  58.         String secondSubstring = message.substring(index);
  59.         StringBuilder newMessage = new StringBuilder();
  60.  
  61.         newMessage.append(firstSubstring).append(value).append(secondSubstring);
  62.  
  63.         return newMessage;
  64.     }
  65.  
  66.     public static StringBuilder changeAll(StringBuilder message, String substring, String newValue){
  67.         String currentMessage = message.toString();
  68.         while (currentMessage.contains(substring)){
  69.             currentMessage = currentMessage.replace(substring, newValue);
  70.         }
  71.  
  72.         StringBuilder newMessage = new StringBuilder();
  73.         newMessage.append(currentMessage);
  74.         return newMessage;
  75.     }
  76. }
  77.  
  78.  
Advertisement
Add Comment
Please, Sign In to add comment