ISBN检查器 - 无法进行校验和

时间:2015-07-16 19:45:45

标签: java isbn

我似乎无法弄清楚如何解决这个问题。通过查找校验和以及代码的外观,我陷入了数学困境。

我知道代码有一些问题,看起来很草率,可能会以更小,更简洁的方式编写,但我是数组的新手,我还不是很擅长优化它们。

import java.util.Arrays;
import java.util.Scanner;

public class ISBN{

    public static void main(String[] args) { 

        Scanner keyboard = new Scanner(System.in);
        System.out.println("Enter ISBN:");

        String isbnSTR = keyboard.nextLine();
        String x;

        int isbnARRAY[] = new int[10];
        int total = 0;
        for(int i = 0; i < isbnSTR.length(); i++){  
            x = ""+isbnSTR.charAt(i);
            isbnARRAY[i] = Integer.parseInt(x);
            total = isbnARRAY[i]  * (10 - 1);


            boolean isbnVALID = PassArray(isbnARRAY, i);

            if (isbnVALID == true){
                System.out.println("Your isbn number is valid.");
            } else {
                System.out.println("Your isbn number is NOT valid");
            }
        }
    }

    public static boolean PassArray(int isbnARRAY[], int total){
        int result = 0;
        int checkSum = 0;
        int len = isbnARRAY.length;     
        for (int x = 0; x < len; x++){
            result = (x * total); 
            checkSum =  result % 11; 
        }
        System.out.println(result);
        boolean isbnVALID;
        if (checkSum == 0){
            isbnVALID=true;
        } else {
            isbnVALID=false;
        }

        return true;


    }


}

0 个答案:

没有答案