上一篇
在Java中获取随机字母可通过
Random或
ThreadLocalRandom类生成随机数,转换为字符实现,生成随机大写字母用
(char)('A' + random.nextInt(26)),小写字母将
'A'替换为
'a',也可利用
String和
charAt()组合随机索引实现。
方法1:使用 Math.random()(基础实现)
通过ASCII码直接生成随机字母,无需额外依赖:
public class RandomLetter {
public static void main(String[] args) {
// 生成随机大写字母 (ASCII范围: A=65, Z=90)
char upperCase = (char) (65 + (int) (Math.random() * 26));
// 生成随机小写字母 (ASCII范围: a=97, z=122)
char lowerCase = (char) (97 + (int) (Math.random() * 26));
System.out.println("大写字母: " + upperCase);
System.out.println("小写字母: " + lowerCase);
}
}
方法2:使用 java.util.Random(更灵活)
通过nextInt()控制范围,可扩展性强:
import java.util.Random;
public class RandomLetter {
public static void main(String[] args) {
Random random = new Random();
// 随机大写字母
char upperCase = (char) (random.nextInt(26) + 'A');
// 随机小写字母
char lowerCase = (char) (random.nextInt(26) + 'a');
// 随机大小写混合字母
char anyCase = random.nextBoolean() ? upperCase : lowerCase;
System.out.println("混合字母: " + anyCase);
}
}
方法3:使用 ThreadLocalRandom(高并发推荐)
多线程环境下性能更优:
import java.util.concurrent.ThreadLocalRandom;
public class RandomLetter {
public static void main(String[] args) {
// 生成随机小写字母
char letter = (char) ThreadLocalRandom.current().nextInt('a', 'z' + 1);
System.out.println("随机字母: " + letter);
}
}
方法4:使用 Apache Commons Lang 库(简化代码)
添加Maven依赖:

<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
代码实现:
import org.apache.commons.lang3.RandomStringUtils;
public class RandomLetter {
public static void main(String[] args) {
// 生成单个随机大写字母
String upperCase = RandomStringUtils.randomAlphabetic(1).toUpperCase();
// 生成5位随机字母(大小写混合)
String randomString = RandomStringUtils.randomAlphabetic(5);
System.out.println("单字母: " + upperCase);
System.out.println("5位字母: " + randomString);
}
}
关键注意事项
-
字符范围控制
- 大写字母:
A(65) 到Z(90) - 小写字母:
a(97) 到z(122) - 使用
char转换时务必检查范围,避免无效字符。
- 大写字母:
-
线程安全

- 单线程用
Random,多线程用ThreadLocalRandom。
- 单线程用
-
第三方库选择
Apache Commons Lang 适合快速生成字符串,但会增加项目依赖。

-
安全性
- 生成验证码时用
SecureRandom替代Random,防止预测:import java.security.SecureRandom; char secureChar = (char) (new SecureRandom().nextInt(26) + 'A');
- 生成验证码时用
总结建议
- 基础场景:优先选
Math.random()或Random,代码简洁。 - 复杂需求:用 Apache Commons Lang 的
RandomStringUtils。 - 高并发/安全:结合
ThreadLocalRandom或SecureRandom。
引用说明:
Apache Commons Lang 文档参考:commons.apache.org
Oracle官方Random类说明:Java 17 Random Docs
