Advertisement
desislava_topuzakova

08. Letters Change Numbers

Jul 15th, 2022
1,448
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.35 KB | None | 0 0
  1. import java.util.Scanner;
  2.  
  3. public class LettersChangeNumbers_08 {
  4.     public static void main(String[] args) {
  5.         Scanner scanner = new Scanner(System.in);
  6.         //код: {буква}{число}{буква}
  7.  
  8.         String input = scanner.nextLine(); //"A12b s17G"
  9.         String [] codes = input.split("\\s+");//["A12b", "s17G"]
  10.  
  11.         double totalSum = 0; // сума от числата на всички кодове
  12.         for (String code : codes) {
  13.             //код: {буква}{число}{буква}
  14.             //пресмятане на числото
  15.             double number = getModifiedNumber(code);
  16.             //добавяме крайното число от кода към общата сума
  17.             totalSum += number;
  18.         }
  19.  
  20.         System.out.printf("%.2f", totalSum);
  21.     }
  22.  
  23.     private static double getModifiedNumber(String code) {
  24.         //код: "{буква}{число}{буква}"
  25.         //"A12b"
  26.         char firstLetter = code.charAt(0); //'A'
  27.         char secondLetter = code.charAt(code.length() - 1); // 'b'
  28.  
  29.         double number = Double.parseDouble(code.replace(firstLetter, ' ') //" 12b"
  30.                             .replace(secondLetter, ' ') //" 12 "
  31.                             .trim()); //"12" -> 12
  32.  
  33.  
  34.         //проверките за първата буква -> firstLetter
  35.         if (Character.isUpperCase(firstLetter)) {
  36.             //главна буква
  37.             //аски код: [65; 90]
  38.             int positionUpperLetter = (int) firstLetter - 64;
  39.             number /= positionUpperLetter;
  40.         } else {
  41.             //малка буква
  42.             //аски код: [97; 122]
  43.             int positionLowerCase = (int) firstLetter - 96;
  44.             number *= positionLowerCase;
  45.         }
  46.  
  47.         //проверки за втората буква -> secondLetter
  48.         if (Character.isUpperCase(secondLetter)) {
  49.             //главна буква
  50.             //аски код: [65; 90]
  51.             int positionUpperLetter = (int) secondLetter - 64;
  52.             number -= positionUpperLetter;
  53.         } else {
  54.             //малка буква
  55.             //аски код: [97; 122]
  56.             int positionLowerCase = (int) secondLetter - 96;
  57.             number += positionLowerCase;
  58.         }
  59.  
  60.         return number;
  61.     }
  62. }
  63.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement