`

java生产6为邀请码

 
阅读更多
package demo.dcn.vo;

import java.util.Random;

/**
 * 随机邀请码
 * @author kun.zhang@downjoy.com
 *) 获取id: 1127738 <br/>
 * 2) 使用自定义进制转为:gpm6 <br/>
 * 3) 转为字符串,并在后面加'o'字符:gpm6o <br/>
 * 4)在后面随机产生若干个随机数字字符:gpm6o7 <br/>
 * 转为自定义进制后就不会出现o这个字符,然后在后面加个'o',这样就能确定唯一性。最后在后面产生一些随机字符进行补全。<br/>
 *
 */
public class ShareCode {
	
	 /** 自定义进制(0,1没有加入,容易与o,l混淆) */
		private static final char[] r = new char[]{'q', 'w', 'e', '8', 'a', 's', '2', 'd', 'z',
			'x', '9', 'c', '7', 'p', '5', 'i', 'k', '3', 'm', 'j', 'u', 'f', 'r', '4', 'v', 'y', 
			'l', 't', 'n', '6', 'b', 'g', 'h'};
		private static final char b='o'; /** (不能与自定义进制有重复) */
		private static final int binLen = r.length;/** 进制长度 */
		private static final int s =6;/** 序列最小长度 */
		/**
		 * 更加id 生产6为随机码
		 * @param id
		 * @return
		 */
		public static String toSerialCode(long id){
			char[] buf = new char[32];
			int charPos = 32;
			while((id/binLen)>0){
				int intid = (int) (id%binLen);
				buf[--charPos] = r[intid];
				id/=binLen;
			}
			String str = new String(buf,charPos,(32-charPos));
			//不够长度的自动随机补全
			if(str.length()<s){
				StringBuilder sb = new StringBuilder();
				sb.append(b);
				Random random = new Random();
				for(int i=1;i<s-str.length();i++){
					sb.append(r[random.nextInt(binLen)]);
				}
				str+=sb.toString();
			}
			return str;
		}
		public static void main(String[] args) {
			String str =	toSerialCode(12336445);
			System.out.println(str);
		}
		
}
分享到:
评论

相关推荐

    Java-SpringBoot的桥牌游戏计分系统毕业设计源码

    本项目是一个基于Java和SpringBoot框架的桥牌游戏计分系统,旨在为用户提供一个便捷、准确的计分平台,尤其适合大学生作为毕业设计参考。在这个系统中,开发者使用了SpringBoot的强大功能,结合MySQL数据库来存储...

    java游戏毕业设计,源代码

    - **提高效率**:通过办公自动化,可以显著提升工作效率和工作质量,进而提高生产率。 - **资源整合**:实现单位内部信息资源的有效整合与共享。 - **流程优化**:通过数字化手段优化日常工作流程,减少不必要的环节...

    微信防封活码springboot+vue(已上线)

    循环码、群码和个人码是活码的不同应用场景,循环码指的是二维码内容会定时轮换,群码可能用于邀请用户加入微信群,而个人码则可能用于添加微信个人账号。 防封策略可能包括但不限于以下几点: 1. 二维码内容的动态...

    基于ssm学报稿件管理系统.zip

    4. **SpringBoot**:基于Spring框架,但简化了配置,通过自动配置和起步依赖,可以快速创建独立运行的、生产级别的Java应用。 5. **SSM整合**:Spring、SpringMVC和MyBatis的集成,是Java Web开发的经典组合,它们...

    安卓Android求职招聘系统app设计毕业源码案例设计.zip

    6. **Java语言**:Android应用主要使用Java语言编写,Java的面向对象特性、强大的库支持和跨平台能力使其成为Android开发的首选语言。 7. **农产品溯源系统**:虽然在文件名中提及,但这个部分可能是一个额外的项目...

    基于ssm+mysql的新冠疫苗接种管理系统源码数据库.docx

    - 疫苗信息录入:包括疫苗名称、生产厂家、生产批次等信息。 - 库存管理:实时监控疫苗库存情况,预警低库存。 3. **接种管理**: - 接种预约:接种者可以通过系统进行线上预约。 - 接种记录:记录每次接种的...

    基于springboot的大学生就业需求分析系统源码数据库.doc

    6. **邀请面试管理**:公司可以通过系统向学生发出面试邀请。 7. **用户管理**:对学生和公司的账户信息进行管理。 8. **招聘信息管理**:发布最新的招聘信息,包括职位描述、要求等。 9. **管理员管理**:维护管理...

    POSTMAN使用手册

    POSTMAN是一款强大的API开发、测试和文档工具,尤其在Java开发者中广受欢迎。它使得HTTP请求的构建、发送和测试变得简单,同时也方便了接口的文档编写和分享。本手册将详细阐述POSTMAN的各项功能和使用技巧。 1. **...

    Postman_v4.1.3

    6. **协作(Collaboration)**:通过Postman团队账户,开发者可以邀请同事共享接口文档和测试结果,促进团队间的沟通和合作。 7. **Mock Server**:Postman可能支持创建模拟服务器,用于在实际API未准备好之前测试...

    Windchill用户使用手册 (2).pdf

    1. Windchill使用手册内容概述:该手册是为企业内部用户准备的,内容包括用户操作指导和系统管理。手册提供详细的操作指导,旨在帮助用户快速学会如何使用Windchill系统。 2. 系统管理与用户操作: - 修改个人密码...

    开题报告 大学生考勤管理系统.docx

    根据给定的部分内容,我们可以将考勤管理系统划分为以下几个主要功能模块: 1. **人事管理模块:** - 新增员工信息 - 修改员工信息 - 员工信息查询 - 新增部门信息 - 修改部门信息 - 部门信息查询 2. **考勤...

    基于SpringBoot社团管理系统论文.doc

    - **Spring Boot框架**:Spring Boot是Spring项目组推出的一个全新框架,它简化了基于Spring的应用开发,使得开发者能够快速搭建单个微服务,非常适合构建轻量级、独立的生产级应用。 #### 三、系统需求分析与设计 ...

    PHP网站常用英文

    #### 6. Product (产品) - **定义**: 指企业生产或提供的商品和服务。 - **分类**: 按功能、用途等进行划分。 #### 7. Quality Certification (质量认证) - **定义**: 第三方机构对产品质量的评估与认可,如ISO9001...

Global site tag (gtag.js) - Google Analytics