java唯一码_唯一邀请码生成(Java版本)

前言

之前收到一个需求,甲方说,他们想给用户生成一个唯一的邀请码,然后用户量在xxx之类的,例如我这里就随便说个5kw个吧。这个嘛,听起来都觉得挺简单的,毕竟每个用户基本上都有自己的唯一用户id,用那个来生成就好。

首先,用户体验方面,肯定是大写字母跟数字(如果再体验好一点的,就把数字的 0/1 以及字母O去掉),反正我是偷懒了,用36个字符(A-Z0-9),也就是“Q7VBNYR1HSCUEODIX3K95F48L0P6GAMTWJZ2",至于为啥是乱的,自己去想想吧,反正我是觉得不连贯就好

初阶版本(被喷版,直接用ID来生成)

简单,有用户id嘛,如果用户id是从小的数字开始,那么就直接就除法取整跟取模来做,不够位数就直接补0就好。美滋滋。

private String runMethod1(long id) {

String base = "Q7VBNYR1HSCUEODIX3K95F48L0P6GAMTWJZ2";

char[] cs = new char[6];

for (int i = 0; i < 6; i++) {

cs[i] = base.charAt((int) (id % 36));

id = id / 36;

}

return new String(cs);

}

@Test

public void method1() {

for (int i = 0; i < 10; i++) {

System.out.println(String.format("id=%d\t code=%s", i, runMethod1(i)));

}

}

测试效果:

706ae634bce8e2ab1da26331914efc4d.png

好了&

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值