View difference between Paste ID: 3NHjychX and axpFkM3a
SHOW: | | - or go back to the newest paste.
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
}