java检测isbn是否合法
/** 
 * An ISBN Utility 
 * @author Julius Schorzman 
 * (C) 2006 -- Provided under GPL 
 */  
public class ISBNUtil {  
    /** 
     * Checks if the passed string is a valid ISBN number. 
     * @param isbn The ISBN String 
     * @return true if it is a valid isbn; false in all other cases. 
     */  
    public static boolean isISBN(String isbn) {  
          
        try {  
            if (isbn.length() != 10) {  
                return false;  
            }  
              
            int weight = 10;  
            int rollingSum = 0;  
            for ( int i = 0 ; i < 9 ; i++ ) {  
                int isbnDigit = Character.digit(isbn.charAt(i), 10);  
                rollingSum += isbnDigit * weight--;  
            }  
              
            int mod = rollingSum % 11;  
            mod = 11 - mod;  
            if ( mod == 11 ) mod = 0;  
              
            char checkSum = isbn.charAt(9);  
            if (Character.toLowerCase(checkSum) == 'x') {  
                if ( mod == 10 ) return true;  
            } else {  
                if (Character.digit(checkSum, 10) == mod) return true;  
            }  
            return false;  
        } catch (Exception e) {  
            return false;  
        }  
    }  
      
    public static void main(String[] args) {  
        System.out.println("true: "+ISBNUtil.isISBN("031234161X"));  
        System.out.println("true: "+ISBNUtil.isISBN("0525949488"));  
        System.out.println("true: "+ISBNUtil.isISBN("076360013X"));  
        System.out.println("true: "+ISBNUtil.isISBN("0671027360"));  
        System.out.println("true: "+ISBNUtil.isISBN("0803612079"));  
        System.out.println("true: "+ISBNUtil.isISBN("0307263118"));  
        System.out.println("true: "+ISBNUtil.isISBN("0684856093"));  
        System.out.println("true: "+ISBNUtil.isISBN("0767916565"));  
        System.out.println("true: "+ISBNUtil.isISBN("0071392319"));  
        System.out.println("true: "+ISBNUtil.isISBN("1400032806"));  
        System.out.println("true: "+ISBNUtil.isISBN("0765305240"));  
  
        System.out.println("false: "+ISBNUtil.isISBN("0312341613"));  
        System.out.println("false: "+ISBNUtil.isISBN("052594948X"));  
        System.out.println("false: "+ISBNUtil.isISBN("0763600138"));  
        System.out.println("false: "+ISBNUtil.isISBN("0671027364"));  
        System.out.println("false: "+ISBNUtil.isISBN("080361207X"));  
        System.out.println("false: "+ISBNUtil.isISBN("0307263110"));  
        System.out.println("false: "+ISBNUtil.isISBN("0684856092"));  
        System.out.println("false: "+ISBNUtil.isISBN("0767916567"));  
        System.out.println("false: "+ISBNUtil.isISBN("0071392318"));  
        System.out.println("false: "+ISBNUtil.isISBN("1400032801"));  
        System.out.println("false: "+ISBNUtil.isISBN("0765305241"));  
    }  
}  


