📅  最后修改于: 2023-12-03 14:58:41.068000             🧑  作者: Mango
有时,我们需要在Java中生成随机字符串用于测试,加密等目的。在本文中,我们将一起看看Java中如何生成随机字符串。
我们可以使用Java.util.Random类创建一个随机数生成器来生成随机字符串。下面是一个使用Java.util.Random类生成随机字符串的示例:
import java.util.Random;
public class RandomStringGenerator {
private static final String CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
private static final Random RANDOM = new Random();
public static String generate(int length) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < length; i++) {
int randomIndex = RANDOM.nextInt(CHARACTERS.length());
sb.append(CHARACTERS.charAt(randomIndex));
}
return sb.toString();
}
}
CHARACTERS
是可选字符集,您可以根据需要修改它。generate
方法使用StringBuilder
来构建一个随机字符串。在循环中,我们使用RANDOM.nextInt()
方法在字符集中随机选择一个字符来添加到生成的字符串中。另一个可靠的方法是使用Java.security.SecureRandom类。SecureRandom采用与java.util.Random类不同的方法生成伪随机数,从而使它们更安全。
import java.security.SecureRandom;
public class SecureRandomStringGenerator {
private static final String CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
private static final SecureRandom SECURE_RANDOM = new SecureRandom();
public static String generate(int length) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < length; i++) {
int randomIndex = SECURE_RANDOM.nextInt(CHARACTERS.length());
sb.append(CHARACTERS.charAt(randomIndex));
}
return sb.toString();
}
}
与上一个例子类似,我们使用SECURE_RANDOM.nextInt()
方法从字符集中选择一个随机字符并将其添加到StringBuilder
中。
还有一种方法是使用Apache Commons Lang库中的RandomStringUtils
类。以下是使用RandomStringUtils.generate()方法生成随机字符串的示例:
import org.apache.commons.lang3.RandomStringUtils;
public class RandomStringUtilsGenerator {
private static final String CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
public static String generate(int length) {
return RandomStringUtils.random(length, CHARACTERS);
}
}
这个方法比前两种方法更简单。在这里,我们使用RandomStringUtils.random()
方法从字符集中选择随机字符串并返回它。
这里我们介绍了三种生成随机字符串的方法。您可以根据需要自由选择其中之一。对于大多数情况,第三种方法可能是最好的选择,因为它足够简单且耗时小。