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)));

}

}

测试效果:

java唯一码_唯一邀请码生成(Java版本)_第1张图片

好了&

你可能感兴趣的:(java唯一码)