Advertisement
mark79

Java Fundamentals - Song Encryption

Aug 1st, 2019
532
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.85 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 SongEncryption {
  6.     public static void main(String[] args) {
  7.         Scanner scanner = new Scanner(System.in);
  8.  
  9.         String regex = "^([A-Z][a-z' ]+):([A-Z\\s]+)$";
  10.         Pattern pattern = Pattern.compile(regex);
  11.         String input = scanner.nextLine();
  12.         while (!input.equals("end")) {
  13.  
  14.             Matcher matcher = pattern.matcher(input);
  15.             if (!matcher.find()) {
  16.                 System.out.println("Invalid input!");
  17.             } else {
  18.                 int key = matcher.group(1).length();
  19.                 StringBuilder sb = new StringBuilder();
  20.                 for (int i = 0; i < input.length(); i++) {
  21.                     if (input.charAt(i) == ':') {
  22.                         sb.append("@");
  23.                     } else if (Character.isWhitespace(input.charAt(i))) {
  24.                         sb.append(' ');
  25.                     } else if (input.charAt(i) == '\'') {
  26.                         sb.append('\'');
  27.                     } else if (Character.isLetter(input.charAt(i))) {
  28.                         int encryptedChar = input.charAt(i) + key;
  29.                         if (Character.isLowerCase(input.charAt(i))) {
  30.                             int chr = encryptedChar > 'z' ? 'a' - 1 + encryptedChar % 'z' : encryptedChar;
  31.                             sb.append((char) chr);
  32.                         } else if (Character.isUpperCase(input.charAt(i))) {
  33.                             int chr = encryptedChar > 'Z' ? 'A' - 1 + encryptedChar % 'Z' : encryptedChar;
  34.                             sb.append((char) chr);
  35.                         }
  36.                     }
  37.                 }
  38.                 System.out.printf("Successful encryption: %s%n", sb);
  39.             }
  40.  
  41.             input = scanner.nextLine();
  42.         }
  43.  
  44.     }
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement