java如何生成指定长度的随机数字和英文的字符串
1、首先创建一个我们的工具类GeneId

2、首先第一个静态方法是生成一个包含大写字母,小写字母,数字的指定长度的字符串,输入参数为生成字符串的长度
/**
* 随机生成包含大小写字母及数字的字符串
* @param length
* @return
*/
public static String getStringRandom(int length) {
String val = "";
Random random = new Random();
//参数length,表示生成几位随机数
for(int i = 0; i < length; i++) {
String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num";
//输出字母还是数字
if( "char".equalsIgnoreCase(charOrNum) ) {
//输出是大写字母还是小写字母
int temp = random.nextInt(2)%2 == 0 ? 65 : 97;
val += (char)(random.nextInt(26) + temp);
} else if( "num".equalsIgnoreCase(charOrNum) ) {
val += String.valueOf(random.nextInt(10));
}
}
return val;
}

3、调用我们的这个方法就可以得到一串随机的包含大小写字母和数字的字符串,实现原理为随机判断下一个字符为什么类型,然后生成随机的ascii码表值,然后得到对应的字母

4、生成随机数字的方法就相对比较简单了,一个for循环即可
/**
* 生成随机数字,
* @param length
* @return
*/
public static String getNumRandom(int length) {
String val = "";
Random random = new Random();
//参数length,表示生成几位随机数
for(int i = 0; i < length; i++) {
val += String.valueOf(random.nextInt(10));
}
return val;
}

5、第三个方法为生成随机小写字母+数字的字符串
/**
* 生成随机数字和小写字母串,
* @param length
* @return
*/
public static String getNumSmallCharRandom(int length) {
String val = "";
Random random = new Random();
//参数length,表示生成几位随机数
for(int i = 0; i < length; i++) {
String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num";
//输出字母还是数字
if( "char".equalsIgnoreCase(charOrNum) ) {
//输出小写字母
val += (char)(random.nextInt(26) + 97);
} else if( "num".equalsIgnoreCase(charOrNum) ) {
//输出数字
val += String.valueOf(random.nextInt(10));
}
}
return val;
}

6、第四个方法为生成随机大写字母+数字的字符串
/**
* 生成随机数字和大写字母串,
* @param length
* @return
*/
public static String getNumBigCharRandom(int length) {
String val = "";
Random random = new Random();
//参数length,表示生成几位随机数
for(int i = 0; i < length; i++) {
String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num";
//输出字母还是数字
if( "char".equalsIgnoreCase(charOrNum) ) {
//输出大写字母
val += (char)(random.nextInt(26) + 65);
} else if( "num".equalsIgnoreCase(charOrNum) ) {
//输出数字
val += String.valueOf(random.nextInt(10));
}
}
return val;
}

7、最后贴一下完成的工具类代码
import java.util.Random;
public class GeneId {
/**
* 随机生成包含大小写字母及数字的字符串
* @param length
* @return
*/
public static String getStringRandom(int length) {
String val = "";
Random random = new Random();
//参数length,表示生成几位随机数
for(int i = 0; i < length; i++) {
String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num";
//输出字母还是数字
if( "char".equalsIgnoreCase(charOrNum) ) {
//输出是大写字母还是小写字母
int temp = random.nextInt(2)%2 == 0 ? 65 : 97;
val += (char)(random.nextInt(26) + temp);
} else if( "num".equalsIgnoreCase(charOrNum) ) {
val += String.valueOf(random.nextInt(10));
}
}
return val;
}
/**
* 生成随机数字,
* @param length
* @return
*/
public static String getNumRandom(int length) {
String val = "";
Random random = new Random();
//参数length,表示生成几位随机数
for(int i = 0; i < length; i++) {
val += String.valueOf(random.nextInt(10));
}
return val;
}
/**
* 生成随机数字和小写字母串,
* @param length
* @return
*/
public static String getNumSmallCharRandom(int length) {
String val = "";
Random random = new Random();
//参数length,表示生成几位随机数
for(int i = 0; i < length; i++) {
String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num";
//输出字母还是数字
if( "char".equalsIgnoreCase(charOrNum) ) {
//输出小写字母
val += (char)(random.nextInt(26) + 97);
} else if( "num".equalsIgnoreCase(charOrNum) ) {
//输出数字
val += String.valueOf(random.nextInt(10));
}
}
return val;
}
/**
* 生成随机数字和大写字母串,
* @param length
* @return
*/
public static String getNumBigCharRandom(int length) {
String val = "";
Random random = new Random();
//参数length,表示生成几位随机数
for(int i = 0; i < length; i++) {
String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num";
//输出字母还是数字
if( "char".equalsIgnoreCase(charOrNum) ) {
//输出大写字母
val += (char)(random.nextInt(26) + 65);
} else if( "num".equalsIgnoreCase(charOrNum) ) {
//输出数字
val += String.valueOf(random.nextInt(10));
}
}
return val;
}
}
