SvetlanPetrova

Letters Change Numbers SoftUni

Aug 9th, 2021
961
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import java.math.BigInteger;
  2. import java.util.Scanner;
  3.  
  4. public class Demo {
  5.     public static void main(String[] args) {
  6.         Scanner scanner = new Scanner(System.in);
  7.         String input = scanner.nextLine(); //"P34562Z q2576f   H456z"
  8.         String [] passwords = input.split("\\s+"); //["P34562Z", "q2576f", "H456z"]
  9.         double totalSum = 0; //обща сума от всички пароли
  10.         for (String password : passwords) {
  11.             //пресмятаме стойността
  12.             double modifiedNumber = getModifiedNumber(password);
  13.             //сумираме
  14.             totalSum += modifiedNumber;
  15.         }
  16.  
  17.         System.out.printf("%.2f", totalSum);
  18.  
  19.     }
  20.  
  21.         private static double getModifiedNumber (String password) {
  22.         //{буква}{число}{буква} -> "P34562Z"
  23.         char firstLetter = password.charAt(0); //"P"
  24.         char secondLetter = password.charAt(password.length() - 1);
  25.         //първи начин: int number = Integer.parseInt(password.replace(firstLetter, ' ').replace(secondLetter, ' ').trim());
  26.         //втори начин:
  27.         StringBuilder builder = new StringBuilder(password);
  28.         double number = Double.parseDouble(builder.deleteCharAt(0).deleteCharAt(builder.length() - 1).toString());
  29.         //трети начин: int number = Integer.parseInt(password.substring(1, password.indexOf(secondLetter)));
  30.  
  31.         //проверка за първата буква
  32.         if (Character.isUpperCase(firstLetter)) { //аски кода >= 65 и <= 90
  33.             //позиция в азбуката
  34.             int positionUpperLetter = (int)firstLetter - 64;
  35.             number = number / positionUpperLetter;
  36.         } else {
  37.             int positionLowerLetter = (int)firstLetter - 96;
  38.             number = number * positionLowerLetter;
  39.         }
  40.  
  41.         //проверка за втората буква
  42.         if(Character.isUpperCase(secondLetter)) {
  43.             int positionUpperLetter = (int)secondLetter - 64;
  44.             number = number - positionUpperLetter;
  45.         } else {
  46.             int positionLowerLetter = (int)secondLetter - 96;
  47.             number = number + positionLowerLetter;
  48.         }
  49.  
  50.         return number;
  51.     }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment