Advertisement
damesova

Song Encryption [Mimi]

Mar 29th, 2019
442
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.13 KB | None | 0 0
  1. import java.util.Scanner;
  2. import java.util.regex.Matcher;
  3. import java.util.regex.Pattern;
  4.  
  5. public class _02_SongEncryption {
  6.     public static void main(String[] args) {
  7.         Scanner scanner = new Scanner(System.in);
  8.  
  9.         String reg = "^(?<artist>[A-Z][a-z' ]+):(?<song>[A-Z][A-z ]+)$";
  10.  
  11.         Pattern p = Pattern.compile(reg);
  12.  
  13.         String input = "";
  14.  
  15.         while (!"end".equals(input = scanner.nextLine())) {
  16.             Matcher m = p.matcher(input);
  17.             if (m.find()) {
  18.                 String valid = m.group(0);
  19.                 int key = m.group("artist").length();
  20.  
  21.                 StringBuilder sb = new StringBuilder();
  22.                 for (int i = 0; i < valid.length(); i++) {
  23.                     int current = valid.charAt(i) + key;
  24.                     if (valid.charAt(i) == '\'' || valid.charAt(i) == ' ') {
  25.                         sb.append(valid.charAt(i));
  26.                     } else if (valid.charAt(i) == ':') {
  27.                         sb.append('@');
  28.                     } else {
  29.                         int diff;
  30.                         if (Character.isLowerCase(valid.charAt(i))) {
  31.                             if (current > 122) {
  32.                                 diff = current - 122;
  33.                                 current = 96 + diff;
  34.                                 sb.append((char) current);
  35.                             } else {
  36.                                 sb.append((char) current);
  37.                             }
  38.                         } else if (Character.isUpperCase(valid.charAt(i))) {
  39.                             if (current > 90) {
  40.                                 diff = current - 90;
  41.                                 current = 64 + diff;
  42.                                 sb.append((char) current);
  43.                             } else {
  44.                                 sb.append((char) current);
  45.                             }
  46.                         }
  47.                     }
  48.                 }
  49.  
  50.                 System.out.println("Successful encryption: " + sb);
  51.             } else {
  52.                 System.out.println("Invalid input!");
  53.             }
  54.         }
  55.     }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement