随机字符发生器,范围为(A..Z,0..9)和标点符号

我需要创build一个返回单个字符的随机字符生成器。 字符应该在字母表中的数字范围内,数字0到9,以及一些字符,如。/ – 。 任何例子,将不胜感激。

最简单的是做到以下几点:

  • 用你想要的字符创build一个String alphabet
  • N = alphabet.length()
  • 然后我们可以问一个java.util.Random int x = nextInt(N)
  • alphabet.charAt(x)alphabet.charAt(x)中的随机字符

这是一个例子:

  final String alphabet = "0123456789ABCDE"; final int N = alphabet.length(); Random r = new Random(); for (int i = 0; i < 50; i++) { System.out.print(alphabet.charAt(r.nextInt(N))); } 

看下面的链接: http : //www.asciitable.com/

 public static char randomSeriesForThreeCharacter() { Random r = new Random(); char random_3_Char = (char) (48 + r.nextInt(47)); return random_3_Char; } 

现在你可以在一次打电话的时候生成一个字符。

  1. 在[0,x)之间select一个随机数,其中x是不同符号的数量。 希望select是一致的select,不可预测:-)

  2. 现在select代表x的符号。

  3. 利润!

我会开始读取伪随机数 ,然后再读一些常见的伪随机数发生器 。 当然,你的语言希望已经有一个合适的“随机”function:-)

这里是代码安全,简单,但会贵一点的会话标识符。

 import java.security.SecureRandom; import java.math.BigInteger; public final class SessionIdentifierGenerator { private SecureRandom random = new SecureRandom(); public String nextSessionId() { return new BigInteger(130, random).toString(32); } } 

为什么重新发明轮子? Apache Commons中的RandomStringUtils具有您可以指定从中生成字符的字符集的function。 你可以把你需要的东西拿到你的应用中去:

http://kickjava.com/src/org/apache/commons/lang/RandomStringUtils.java.htm

使用一些简单的命令行(bash脚本):

 $ cat /dev/urandom | tr -cd 'a-z0-9,.?/\-' | head -c 30 | xargs t315,qeqaszwz6kxv?761rf.cj/7gc $ cat /dev/urandom | tr -cd 'a-z0-9,.?/\-' | head -c 1 | xargs f 
  • cat / dev / urandom:从内核中获取一个随机的charstring
  • tr:只保留char char我们想要的
  • 头:只带前n字符
  • xargs:只是添加一个'\n'字符
 Random random = new Random(); int n = random.nextInt(69) + 32; if (n > 96) { n += 26; } char c = (char) n; 

我想这取决于你想要包括哪些标点符号,但是这应该会生成一个随机字符,包括这个ASCII表格上的所有标点符号。 基本上,我已经产生了一个从32 – 96或123 – 126,随后我铸造了一个字符,它给出了该数字的ASCII等值的随机int。 另外,确保你import java.util.Random

你应该首先制作一个保存所有你想要的字母/数字的string。
然后,做一个随机。 例如Random rnd = new Random;
最后,从你的包含你的字母的string中获得一个真正的随机字符。
例如,

 import java.util.Random; public class randomCharacter { public static void main(String[] args) { String alphabet = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ?/.,"; Random rnd = new Random(); char char = alphabet.charAt(rnd.nextInt(alphabet.length())); // do whatever you want with the character } } 

看到这个
这是我从哪里得到这个信息。

随机char包com.company;

  import java.util.concurrent.ThreadLocalRandom; public class Main { public static void main(String[] args) { // write your code here char hurufBesar =randomSeriesForThreeCharacter(65,90); char angka = randomSeriesForThreeCharacter(48,57); char simbol = randomSeriesForThreeCharacter(33,47); char hurufKecil= randomSeriesForThreeCharacter(97,122); char angkaLagi = randomSeriesForThreeCharacter(48,57); System.out.println(hurufBesar+" "+angka+" "+simbol+" "+hurufKecil+" "+angkaLagi); } public static char randomSeriesForThreeCharacter(int min,int max) { int randomNumber = ThreadLocalRandom.current().nextInt(min, max + 1); char random_3_Char = (char) (randomNumber); return random_3_Char; } }