最近公司项目做了代金卷的业余需要生成随机的位数字字母组合的条码现贴出种程序源码供大家学习和参考
方法
private static char[] constant = { 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 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 }public string pxkt_GetCharFont(int strLength)
{ SystemTextStringBuilder newRandom = new SystemTextStringBuilder()Random rd = new Random(GuidNewGuid()GetHashCode())//保证生成的随机字符永远不重复
// Random rd= new Random() //不能写成这样数目小的条左右没问题多了就会有很多重复for (int i = i < strLength i++)
{ newRandomAppend(constant[rdNext()])} return newRandomToString()}方法
public string RandomNum(int n) // { //定义一个包括数字大写英文字母和小写英文字母的字符串string strchar = ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz//将strchar字符串转化为数组//StringSplit 方法返回包含此实例中的子字符串(由指定Char数组的元素分隔)的 String 数组
string[] VcArray = strcharSplit()string VNum = //记录上次随机数值尽量避免产生几个一样的随机数int temp = //采用一个简单的算法以保证生成随机数的不同Random rd = new Random(GuidNewGuid()GetHashCode())//保证生成的随机字符永远不重复
// Random rd= new Random() //不能写成这样数目小的条左右没问题多了就会有很多重复for (int i = i < n + i++)
{ if (temp != )
{ //unchecked 关键字用于取消整型算术运算和转换的溢出检查
//DateTimeTicks 属性获取表示此实例的日期和时间的刻度数
rand = new Random(i * temp * unchecked((int)DateTimeNowTicks))} //RandomNext 方法返回一个小于所指定最大值的非负随机数
int t = randNext()if (temp != && temp == t)
{ return RandomNum(n)} temp = tVNum += VcArray[t]} return VNum//返回生成的随机数}
}