Java 自制流域、水系、河流编码生成工具类

/**
 * 自制工具类
 * @author chenbin on 2017/12/20
 * @version 3.0.0
 */
public class HzzCodeUtil {
    
    /**
     * 生成流域编码
     * @param code 传入数据库中最大一位的流域Code,若无传入"" 或者null 则会从第一位 例如“A”开始生成
     * @return 返回生成后的流域编码
     */
    public static String getBasinCode(String code){
        Map<String,String> map = MapFor();
        String newCode;
        if (code == null || code.equals("")){
            newCode = map.get("@");
        }else {
            newCode = map.get(code);
        }
        return newCode;
    }

    /**
     * 生成水系编码
     * @param code 传入数据库中最后一位Code 例如
     *             新增水系时查询出所属流域下的水系 最后一位Code传进来
     * @return 返回生成后的水系编码
     */
    public static String getWaterCode(String code){
        Map<String,String> map = MapFor();
        String newCode;
        String one = code.substring(0,1);
        String two = code.substring(1,2);
        String three = code.substring(2,3);

        if (three.equals("Y")){
            newCode = one + map.get(two) + map.get(three);
        }else {
            newCode = one + two + map.get(three);
        }
        return newCode;
    }

    /**
     * 生成河流编码
     * @param waterCode 传入水系代码
     * @param code 传入 subString(3,7)位的河流四位数
     * @param CodeType 传入河流类型
     * @return 返回生成后的河流编码
     */
    public static String getRiverCode(String waterCode,String code,String CodeType){
        String newCode = waterCode + String.format("%04d",Integer.parseInt(code)+1) + CodeType + "A";
        return newCode;
    }

    public static void main(String[] args) {

    }


    /**
     * 封装遍历工具类 配合生成流域水系Code使用
     * @return 返回一个Map对象
     */
    public static final Map<String, String> MapFor(){
        Map<String ,String > map = new HashMap<>();
        for (int i = 64;i<90;i++){
            if (i==89){
                map.put(String.valueOf((char)i),String.valueOf((char)65));
                break;
            }else if (i==72){
                map.put(String.valueOf((char)i),String.valueOf((char)(i+2)));
            }else if (i==78){
                map.put(String.valueOf((char)i),String.valueOf((char)(i+2)));
            }else if (i==64){
                map.put(String.valueOf((char)i),String.valueOf((char)65));
            }
            else {
                map.put(String.valueOf((char)i),String.valueOf((char)(i+1)));
            }
        }
        return map;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值