`

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邀请码生成工具类

    超级简单的Java邀请码生成器,输入一个数值类型生成一个6位的0-Z的邀请码,并且邀请码可以反向解析成数值! 非常好用,生成和反向生成的方法已经封装好了 超级简单

    邀请码工具类

    生成邀请码工具类 java 本算法利用62个可打印字符,通过随机生成32位UUID,由于UUID都为十六进制,所以将UUID分成8组,每4个为一组,然后通过模62操作

    java生成一维码

    java生成一维码,包中的工程直接导入ECLIPSE中,运行web工程

    邀请码生成算法文档

    邀请码生成算法文档 验证码使用字母加数字的方式,字母以大写展示,并兼容小写,排除容易混淆的数字0和字母O、数字1和字母I 后使用剩下的32个字符(数字)

    Java三种生成条形码的源码(barcode4j、jbarcode、google-zxing)

    Java三种生成条形码的源码 1、用barcode4j方式生成 2、用jbarcode方式生产成 3、google-zxing方式生成,但该方式较不方便,添加条形码数字叫复杂

    java扫码枪

    这是一个WEB扫码器DEMO,启动该项目,用外置的扫码枪进行扫码,可以识别出二维码里的内容并输出。经过反复测试,没有发现什么问题。

    java条形码识别

    条形码识别Google版,jar包,源代码

    Java实现条形码打印

    目前比较通用的用Java实现条形码打印的集成插件主要有:barbecue和barcode4j. 但是用barbecue,条形码可以显示出来,可是下面对应数字却不能显示出来,当然可以自己手动加上去,不过那就不是一张图片里面的了,并且...

    java 使用正则表达式验证电话号码的格式

    java 使用正则表达式验证电话号码的格式 java 使用正则表达式验证电话号码的格式

    java实现zebra打印条形码

    用java代码实现zebra斑马打印机的条形码打印

    java生成推广二维码

    全网唯一全面美化二维码代码源码,自己纯手工制作。 具体功能:图片和图片组合,图片添加推广文字。 成品类似0元购推广二维码。可添加文字,可组合图片。

    java开源包6

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    支付宝扫码付和条形码付款demo(java)

    支付宝扫码付和条形码付款demo(java)

    Java解压带密码的RAR文件

    Java解压RAR文件,压缩包内包含源码、Jar包、依赖包和示例程序,也可以从http://code.google.com/p/java-unrar/downloads/list这里下载支持密码的unrar项目(包括源码和jar包),其依赖包也很容易搜到。

    java课程设计 电话号码查询系统

    本系统为电话号码查询系统,拥有查询、浏览、打印、添加、删除、备份、修改等功能模块,代码简单易懂!

    Java生成兑换码工具类(英文26个字母加数字随机生成)

    生成指定位数的兑换码,(数字、大写字母随机混排)+(数字、小写字母随机混排)+(小写字母与数字混排),三种方式生成兑换码!

    java源码包---java 源码 大量 实例

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    分布式优惠码生产规则

    基于snowflake算法的唯一性和自己添加的随机数保证生产的优惠券和优惠码规律打散,不容易被爆力破解。

    为Java控制台程序添加密码输入功能

    为Java控制台程序添加密码输入功能,同时内含全部源程序,也是学习jni的很好例程. 请下载完成后改文件名为rookie.jar,然后在命令行可以执行java&nbsp;&nbsp;-jar&nbsp;&nbsp;rookie.jar测试密码输入功能.

    yourkit java profiler 2015 注册码

    yourkit java profiler 2015 注册码 实测可进行正常安装 服务器进程内存分析不可多得的工具

Global site tag (gtag.js) - Google Analytics