String[] chs = {"1","2","3",...,"a","b",...,"z"};
然后随机产生12个范围在1到35之间的整数,拼成编号
然后随机产生12个范围在1到35之间的整数,拼成编号
解决方案 »
- 求java web教程
- DWR2.0 找不到DwrServlet 请帮下忙
- com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table 'db91tu8.Bigp' doesn't exist
- 用Jbuilder下的tomcat程序没问题,但是那到我机器上的tomcat5.5就报错
- <?xml-stylesheet type="text/xsl" href="test.do?submit=output_xsl"?>为什么不起作用?好像根本就不会去找test.do来执行,
- 如何分页显示
- 请问开发一个B/S项目,具体的流程是怎样的?
- jsp运行问题,我是菜鸟!
- 域名问题
- 在struts2中关于重定向的问题,求大牛
- jsp调用bean出错:急
- javax.servlet.ServletException请帮忙看看.
不过35进制实际是上 0-9 和 A-Y,缺少 Z,多了 0,所要要用 Z 去替换掉 0,如下:/*
* @(#) Test.java
* Created on 2004-10-8
* By James Fancy
*/package jamesfancy;/**
* Test
*
* @author James
*/
public class Test { public static String createNumber() {
long max = Long.parseLong("1000000000000", 35); // 35进制数的最大12位数+1,用于取随机数。(随机数大于等于0,小于这个数)
long x = (long) (Math.random() * max);
String number = Long.toString(x, 35).toUpperCase();
StringBuffer buffer = new StringBuffer(12);
number.replaceAll("0", "Z"); // 将 0 替换成 Z
if (number.length() < 12) { // 不足12位的前面补0,替换成Z,所以直接补Z
for (int i = 12; i > number.length(); --i) {
buffer.append('Z');
}
buffer.append(number);
number = buffer.toString();
}
return number;
}
public static void main(String[] args) {
for (int i = 0; i < 10; ++i) {
System.out.println(createNumber());
}
}
}
/**
* 产生指定长度随机字符串(包括字母及数字).
* @param length int
* 随机字符串长度
* @return String
* 随机字符串
*/
public static String random(int length)
{
String retu = "";
int d1,d2;
char[] letters = initLetters();
int[] numbers = initNumbers(); for(int i = 0;i < length;i++){
d1 = ((int)(Math.random() * 10) % 2);
if(d1 == 0){ // use a letter
d2 = ((int)(Math.random() * 100) % 52);
retu += letters[d2];
}
else if(d1 == 1){ // use a number
retu += (int)(Math.random() * 10);
}
}
return retu;
} /**
* 产生纯字母的随机字符串
* @param length int
* 随机字符串长度
* @return String
* 随机字符串
*/
public static String randomString(int length)
{
String retu = "";
int d2;
char[] letters = initLetters(); for(int i = 0;i < length;i++){
d2 = ((int)(Math.random() * 100) % 52);
retu += letters[d2];
}
return retu;
} /**
* 产生纯数字随机字符串
* @param length int
* 随机字符串长度
* @return String
* 随机字符串
*/
public static String randomNumber(int length)
{
String retu = "";
int[] numbers = initNumbers(); for(int i = 0;i < length;i++){
retu += (int)(Math.random() * 10);
}
return retu;
} /**
* 内部方法,产生字母数组
* @return char[]
*/
private static char[] initLetters()
{
char[] ca = new char[52];
for(int i = 0;i < 26;i++){
ca[i] = (char)(65 + i);
}
for(int i = 26;i < 52;i++){
ca[i] = (char)(71 + i);
}
return ca;
} /**
* 内部方法,产生数字数组
* @return int[]
*/
private static int[] initNumbers()
{
int[] na = new int[10];
for(int i = 0;i < 10;i++){
na[i] = i;
}
return na;
}
COM的设计中就是用这种方法作标记的。
int index=int(Math.random()*12+1)
然后就把用个数组newchs[]存起来
然后String(newchs);
String result=null;
for (int i=0;i<13;i++){
int index=int(Math.random()*37+1);
result=result+chs[index];
}
String[] chs = {"0","1","2","3",...,"a","b",...,"z"};//36个字符
String result=null;
for (int i=0;i<13;i++){
int index=int(Math.random()*37);
result=result+chs[index];
}
String[] chs = {"0","1","2","3",...,"a","b",...,"z"};//36个字符
String result="";
for (int i=0;i<12;i++){
int index=int(Math.random()*37);
result=result+chs[index];
}