在 Java 中生成随机字符

Rupam Yadav 2023年10月12日
  1. 在 Java 中使用 random.nextInt() 生成随机字符
  2. 使用 random.nextInt()charAt() 从字符串中生成随机字符
  3. 使用 Apache Commons 的 RandomStringUtils 生成随机字符
在 Java 中生成随机字符

在本教程中,我们将介绍如何使用几种方法生成一个随机字符。我们将介绍三种方法,并举例说明,以便更好地理解这个主题。

在 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 Yadav
Rupam Yadav avatar Rupam Yadav avatar

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

相关文章 - Java Char