梦相随1006

版权归 梦相随1006 所有,未经 https://www.cnblogs.com/xin1006 作者许可,严禁转载

导航

利用ASCII码生成指定规则的字符串

 

 

    /**
     * 上送终端编号的后两位生成规则  总共可以生成 (36*36-1)1295个编号
     * 01...09 0A...0Z
     * 10...19 1A...1Z
     * ...............
     * A0...A9 AA...AZ
     * ...............
     * Z0...Z9 ZA...ZZ
     */
    public  String generateNumber(String number){
        String ret=number.substring(0,number.length()-2); //取前半部分
        number=number.substring(number.length()-2); //取最后两位
        // 取第一个字符
        char ch1=number.charAt(0);
        char ch2=number.charAt(1);
        
        //生成第二个字符串
        if(number.equals("ZZ")){ //达到上限 ZZ,不使用生成规则生成
            return null;
        }
        if(ch2<'Z'){
            //因为9的下一个字母是A
            if(ch2=='9'){
                ch2='A';
            }else{
                ch2+=1;
            }
            ret=ret+""+ch1+ch2;
        }else{
            //第一个字符加1;第二个字符为0
            if(ch1=='9'){
                ch1='A';
            }else{
                ch1+=1;
            }
            ret=ret+""+ch1+0;
        }
        
        return ret;
    }
public static void main(String[] args){
        String[] arr={"01","09","0A","0Y","0Z","90","99","9B","9Z","A0","AZ","Z0","ZY","ZZ"};
        for(String arr1:arr){
            System.out.println("--->:"+test(arr1));
        }
        
    }

 

    /**
     * 生成上送终端编号的后两位规则  总共可以生成 (62*62-1)3843个编号
     * 01...09 0A...0Z 0a...0z
     * 10...19 1A...1Z 1a...1z
     * .......................
     * A0...A9 AA...AZ Aa...Az
     * .......................
     * Z0...Z9 ZA...ZZ Za...Zz
     * a0...a9 aA...aZ aa...az
     * .......................
     * z0...z9 zA...zZ za...zz
     */
    public  String generateNumber(String number){
        String ret=number.substring(0,number.length()-2); //取前半部分
        number=number.substring(number.length()-2); //取最后两位
        // 取第一个字符
        char ch1=number.charAt(0);
        char ch2=number.charAt(1);
        
        //生成第二个字符串
        if(number.equals("zz")){ //达到上限 zz,不使用生成规则生成
            return null;
        }
        if(ch2<'z'){
            //因为9的下一个字母是A
            if(ch2=='9'){
                ch2='A';
            } else if(ch2=='Z'){
                ch2='a';
            }else{
                ch2+=1;
            }
            ret=ret+""+ch1+ch2;
        }else{
            //第一个字符加1;第二个字符为0
            if(ch1=='9'){
                ch1='A';
            }else if(ch1=='Z'){
                ch1='a';
            }else{
                ch1+=1;
            }
            ret=ret+""+ch1+0;
        }
        
        return ret;
    }

 

posted on 2014-11-05 21:05  梦相随1006  阅读(430)  评论(0编辑  收藏  举报