Advertisement
SPDG57

Song Encryption - Regex, char range containing different sym

Dec 3rd, 2019
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.82 KB | None | 0 0
  1. package com.company;
  2.  
  3. import javafx.util.Pair;
  4.  
  5. import javax.xml.crypto.dsig.keyinfo.KeyValue;
  6. import java.lang.reflect.Array;
  7. import java.security.KeyStore;
  8. import java.text.Collator;
  9. import java.text.DecimalFormat;
  10. import java.util.*;
  11. import java.util.function.Predicate;
  12. import java.util.regex.Matcher;
  13. import java.util.regex.Pattern;
  14. import java.util.stream.Collector;
  15. import java.util.stream.Collectors;
  16.  
  17.  
  18. public class Main {
  19.  
  20.     public static String encrypt(String artist, String song, int key){
  21.         String cryptedArtist = "";
  22.         String cryptedSong = "";
  23.  
  24.         StringBuilder builder = new StringBuilder();
  25.         for (int i = 0; i < artist.length(); i++) {
  26.             char character = artist.charAt(i);
  27.             if(character == '\'' | character == ' '){
  28.                 builder.append(character);
  29.                 continue;
  30.             }
  31.             int encryptedCharacter;
  32.             if((int) character + key > 122){
  33.                 int tempKey = (character) + key - 122 - 1;
  34.                 encryptedCharacter = (int) 'a' + tempKey;
  35.             }else{
  36.                 encryptedCharacter = (int) character + key;
  37.             }
  38.             builder.append((char) encryptedCharacter);
  39.         }
  40.         cryptedArtist = builder.toString();
  41.         builder = new StringBuilder();
  42.  
  43.         for (int i = 0; i < song.length(); i++) {
  44.             char character = song.charAt(i);
  45.             if(character == '\'' | character == ' '){
  46.                 builder.append(character);
  47.                 continue;
  48.             }
  49.             int encryptedCharacter;
  50.             if((int) character + key > 90){
  51.                 int tempKey = (character) + key - 90 - 1;
  52.                 encryptedCharacter = (int) 'a' + tempKey;
  53.             }else{
  54.                 encryptedCharacter = (int) character + key;
  55.             }
  56.             String appender =(char) encryptedCharacter + "";
  57.             builder.append(appender.toUpperCase());
  58.         }
  59.         cryptedSong = builder.toString();
  60.  
  61.         return cryptedArtist + "@" + cryptedSong;
  62.     }
  63.  
  64.     public static void main(String[] args) {
  65.         Scanner scanner = new Scanner(System.in);
  66.  
  67.         final String REGEX =  "^([A-Z][a-z' ]+):([A-Z\\s]+)$";
  68.         Pattern pattern = Pattern.compile(REGEX);
  69.  
  70.         String input = "";
  71.         while(!"end".equals(input = scanner.nextLine())){
  72.             Matcher matcher = pattern.matcher(input);
  73.             if(matcher.find()){
  74.                 String artist = matcher.group(1);
  75.                 String song = matcher.group(2);
  76.  
  77.                 int key = artist.length();
  78.  
  79.                 System.out.print("Successful encryption: ");
  80.                 System.out.println(encrypt(artist, song, key));
  81.             }else{
  82.                 System.out.println("Invalid input!");
  83.             }
  84.         }
  85.     }
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement