desislava_topuzakova

Untitled

Oct 13th, 2021
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.50 KB | None | 0 0
  1. import java.util.Scanner;
  2.  
  3. public class TheLimitationGame {
  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. }
Advertisement
Add Comment
Please, Sign In to add comment