我的项目中设计的RowKey

本文介绍了一种基于电话号码和构建时间生成特定区域代码的算法。该算法通过提取电话号码的后四位和构建时间的年月部分进行运算,再通过离散操作生成分区号,并最终格式化为两位数的区域代码。
public static String genRegionCode(String caller, String buildTime, int regions) {
        int len = caller.length();
        //取出主叫后四位
        String lastPhone = caller.substring(len - 4);
        //取出年和月 buildTime:2018-06-22 13:27:21
        String ym = buildTime
                .replaceAll("-", "")
                .replaceAll(" ", "")
                .replaceAll(":", "")
                .substring(0, 6);
        //离散操作1
        Integer x = Integer.valueOf(lastPhone) ^ Integer.valueOf(ym);
        //离散操作2
        int y = x.hashCode();
        //生成分区号
        int regionCode = y % regions;
        //格式化分区号
        DecimalFormat df = new DecimalFormat("00");
        return df.format(regionCode);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值