【洛谷OJ】P1055 ISBN号码


import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main{
    private static Scanner cin;
    
    public static void main(String args[])throws Exception {
        cin = new Scanner(System.in);
        String isbnToCheck = cin.nextLine();
        String patternISBN = "\\d{1}-\\d{3}-\\d{5}-[\\dX]{1}";
        Pattern pattern = Pattern.compile(patternISBN);
        Matcher m = pattern.matcher(isbnToCheck);
        if(isbnToCheck.trim().length() == 13 && m.find()) {
            char[] isbnChars = isbnToCheck.toCharArray();
            long identifier = 0;
            String identifyNumber = new String("");
            identifier += Integer.valueOf(String.valueOf(isbnChars[0]));
            identifier += Integer.valueOf(String.valueOf(isbnChars[2]))*2;
            identifier += Integer.valueOf(String.valueOf(isbnChars[3]))*3;
            identifier += Integer.valueOf(String.valueOf(isbnChars[4]))*4;
            identifier += Integer.valueOf(String.valueOf(isbnChars[6]))*5;
            identifier += Integer.valueOf(String.valueOf(isbnChars[7]))*6;
            identifier += Integer.valueOf(String.valueOf(isbnChars[8]))*7;
            identifier += Integer.valueOf(String.valueOf(isbnChars[9]))*8;
            identifier += Integer.valueOf(String.valueOf(isbnChars[10]))*9;
            
            identifier = identifier%11;
            if(identifier == 10) {
                identifyNumber = new String("X");
            }else {
                identifyNumber = String.valueOf(identifier);
            }
            
            if (identifyNumber.equals(String.valueOf(isbnChars[12]))) {
                System.out.println("Right");
            }else {
                System.out.println(new String(isbnChars,0,12)+identifyNumber);
            }
        }
    }
}

猜你喜欢

转载自blog.csdn.net/axwolfer/article/details/81805971