package com.tools;

import com.utils.CommonUtils;

public class ISBNTools {

    public static String fmtisbn(String isbn){
        //System.out.println(fmtisbn("9787509720684"));
        if(CommonUtils.isNullOrEmpty(isbn) || "".equals(isbn)) {
            return isbn;
        }
        if(isbn.indexOf("-") > -1) {
            return isbn;
        }
        if(isbn.length() != 13 && isbn.length() != 10){
            return isbn;
        }
        String stra = "";
        String prefix = "";
        if(isbn.length() == 13){
            prefix = isbn.substring(0,3)+"-";
            isbn = isbn.substring(3);
        }
        String myisbn[] = isbn.split("");
        stra += myisbn[0] + '-'; //统一加杠
        if(Integer.valueOf(myisbn[1]) == 0){
            stra+=  myisbn[1]+myisbn[2] + '-' +
                    myisbn[3]+myisbn[4]+myisbn[5]+myisbn[6]+myisbn[7]+myisbn[8] + '-'+ myisbn[9];
        }
        if(Integer.valueOf(myisbn[1]) > 0 && Integer.valueOf(myisbn[1])<5){
            stra+=  myisbn[1]+myisbn[2] +myisbn[3] + '-' +
                    myisbn[4]+myisbn[5]+myisbn[6]+myisbn[7]+myisbn[8] + '-'+ myisbn[9];
        }
        if(Integer.valueOf(myisbn[1]) > 4 && Integer.valueOf(myisbn[1])<8){
            stra+=  myisbn[1]+myisbn[2] +myisbn[3] +myisbn[4]+ '-' +
                    myisbn[5]+myisbn[6]+myisbn[7]+myisbn[8] + '-'+ myisbn[9];
        }
        if(Integer.valueOf(myisbn[1]) == 8){
            stra+=  myisbn[1]+myisbn[2] +myisbn[3] +myisbn[4]+myisbn[5]+ '-' +
                    myisbn[6]+myisbn[7]+myisbn[8] + '-'+ myisbn[9];
        }
        if(Integer.valueOf(myisbn[1]) == 9){
            stra+=  myisbn[1]+myisbn[2] +myisbn[3] +myisbn[4]+myisbn[5]+ myisbn[6]+'-' +
                    myisbn[7]+myisbn[8] + '-'+ myisbn[9];
        }
        return prefix+stra;
    }
    public static String fmtisbn2(String isbn)
    {
        if(CommonUtils.isNullOrEmpty(isbn) || "".equals(isbn)) {
            return isbn;
        }
        if(isbn.indexOf("-") > -1) {
            return isbn;
        }
        String isbn_num=isbn.replace("/[^0-9xX]/","");
        int oldlen=isbn.length();
        int newlen=isbn_num.length();

        if (((newlen==10)&&(oldlen==10))||((newlen==13)&&(oldlen==13)))
        {   String head = "";
            if (newlen==13)
            {
                head="978-";
                isbn_num=isbn_num.substring(3);//substr($isbn_num,3);
            }
            //head=head.substr($isbn_num,0,1)+"-";
            head=head+isbn_num.substring(0,1)+"-";
            String cbstype=isbn_num.substring(1,2);//substr($isbn_num,1,1);
            String cbsnum="";
            String booknum="";
            if (cbstype.equals("1")||cbstype.equals("2") || cbstype.equals("3") || cbstype.equals("6")){
                cbsnum=isbn_num.substring(1,4);//substr($isbn_num,1,3);
                booknum=isbn_num.substring(4,9);//substr($isbn_num,4,5);
            }else if (cbstype.equals("5") || cbstype.equals("7")){
                cbsnum=isbn_num.substring(1,5);//substr($isbn_num,1,4);
                booknum=isbn_num.substring(5,9);//substr($isbn_num,5,4);
            }else if (cbstype.equals("8") ){
                cbsnum=isbn_num.substring(1,6);
                booknum=isbn_num.substring(6,9);
            }else if (cbstype.equals("9")){
                cbsnum=isbn_num.substring(1,7);
                booknum=isbn_num.substring(7,9);
            }else if (cbstype.equals("0")){
                cbsnum=isbn_num.substring(1,3);
                booknum=isbn_num.substring(3,9);
            }
            return head+cbsnum+"-"+booknum+"-"+isbn_num.substring(9,10);
        }
        else
            return isbn;

    }


}
