在 Java 中生成随机字符
-
在 Java 中使用
random.nextInt()
生成随机字符 -
使用
random.nextInt()
和charAt()
从字符串中生成随机字符 -
使用 Apache Commons 的
RandomStringUtils
生成随机字符
在本教程中,我们将介绍如何使用几种方法生成一个随机字符。我们将介绍三种方法,并举例说明,以便更好地理解这个主题。
在 Java 中使用 random.nextInt()
生成随机字符
Random
是 Java 中最常用的生成随机值的类,但它不能生成字符。为了使用 Random
类随机化字符,我们可以使用 random.nextInt()
来生成随机整数。每个字符对应一个数字。
我们可以在 nextInt()
函数中使用一个字符作为边界。在下面的例子中,我们可以看到,创建了一个 Random
类的对象,然后使用 (random.nextInt(26)+'a'
。在这里,字符'a'
对应的是数字 97,利用它我们可以生成 26 个对应于小写字母的随机整数。
最后,我们必须将生成的整数转换为一个字符。
import java.util.Random;
public class RandomChar {
public static void main(String[] args) {
Random random = new Random();
char randomizedCharacter = (char) (random.nextInt(26) + 'a');
System.out.println("Generated Random Character: " + randomizedCharacter);
}
}
输出:
Generated Random Character: p
使用 random.nextInt()
和 charAt()
从字符串中生成随机字符
在下一个例子中,我们将再次使用 Random
类,以及它的 nextInt()
方法,但从已经定义的字符集中生成一个随机字符。
下面我们可以看到,setOfCharacters
是一个包含多个字符的字符,包括字母、数字和符号。为了从这个字符串中生成一个随机字符,我们将使用 setOfCharacters
的长度作为 random.nextInt()
的参数。一旦生成一个随机整数,我们就使用 charAt()
在一个随机的索引或位置获得一个字符。它将从 setOfCharacters
中返回一个随机的 char
。
import java.util.Random;
public class RandomChar {
public static void main(String[] args) {
Random random = new Random();
String setOfCharacters = "abcdefghxyz1234567-/@";
int randomInt = random.nextInt(setOfCharacters.length());
char randomChar = setOfCharacters.charAt(randomInt);
System.out.println("Random character from string: " + randomChar);
}
}
输出:
Random character from string: 4
使用 Apache Commons 的 RandomStringUtils
生成随机字符
在最后一个例子中,我们使用 Apache Commons 库中的 RandomStringUtils
类。RandomStringUtils
类有一个函数 randomAlphanumeric()
来生成随机的字母数字字符串。randomAlphanumeric(count)
需要一个单一的参数,即我们想要的随机字符串的长度。
在下面的例子中,我们只向 randomAlphanumeric()
方法传递了 1,因为我们只想要一个字符。但是这个函数将结果作为一个字符串返回。这就是为什么我们必须将其转换为字符。所以,我们使用 charAt()
从字符串中获取字符。
import org.apache.commons.lang3.RandomStringUtils;
public class RandomChar {
public static void main(String[] args) {
String randomizedString = RandomStringUtils.randomAlphanumeric(1);
char randomizedCharacter = randomizedString.charAt(0);
System.out.println("Generated Random Character: " + randomizedCharacter);
}
}
输出:
Generated Random Character: L
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn