生成4位不重复的邀请码
今天群里一位朋友抛出一个问题,需要用26个字母和10个数字,组成一个不重复的4位字符,来作为邀请码。既方便客户记忆,又能适应大量的用户。我就做了这个demo
package com.study.test; import java.util.Arrays; import java.util.List; public class mytest { public static void main(String[] args) { List<String> list = Arrays.asList("0", "1","2","3","4","5","6","7","8","9" , "a","b","c","d","e","f","g","h","i" , "j","k","l","m","n","o","p","q","r" , "s","t","u","v","w","x","y","z"); int begin = 0;
while (begin<10000){ String s = getString(list, begin); System.out.println("邀请码:"+s); begin++; } } private static String getString(List<String> list, int begin) { String a1; String a2; String a3; String a4; int i4 = (begin) % 36; int i3 = (begin/(36)) % 36; int i2 = (begin/(36*36)) % 36; int i1 = (begin/(36*36*36)) % 36; System.out.println(i1); System.out.println(i2); System.out.println(i3); System.out.println(i4); a1 = list.get(i1); a2 = list.get(i2); a3 = list.get(i3); a4 = list.get(i4); return a1+a2+a3+a4; } }
用Redis把begin存储起来,每次用的时候放入方法,拿到邀请码,再自增1,设置回Redis。
如此生成的邀请码最多是36*36*36*36=1679616个,一百六十万个用户,满足小型应用的需求。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南