Java中的字符串生成器

时间:2015-09-15 07:49:03

标签: java string generator

我需要生成随机的字母数字字符串(5或6个字符),以便将其放入特定字段。 任何人都可以为我提供解决方案吗? 已尝试过堆叠中其他帖子中描述的几种方法,但没有成功。

尝试过类似的事情:

public static String generateString(Random rng, String characters, int length)
{
    char[] text = new char[length];
    for (int i = 0; i < length; i++)
    {
        text[i] = characters.charAt(rng.nextInt(characters.length()));
    }
    return new String(text);
}

但不知道为什么随机传递作为参数,我应该在调用方法

时为它提供什么

2 个答案:

答案 0 :(得分:2)

由于您按照您的说法尝试了很多,我可以帮助您解决最简单的解决方案之一 -

  
      
  1. 使用您选择的字符声明一个字符串。例如0..9..a..z..A..Z
  2.   
  3. 拥有一个包含您想要生成的字符数的循环。例如如果你想要5个随机字符,你会得到for(int i = 0; i < 5; i++)
  4. 之类的东西   
  5. 对于每次迭代,使用步骤1中的字符串长度从步骤1中选择一个随机字符。
  6.   

答案 1 :(得分:1)

以下是示例代码:

private static final char[] VALID_CHARACTERS =
        "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456879".toCharArray();

public static String getRandomString( final int length ) {
    // Check input
    if( length <= 0 ) {
        return "";
    }
    // Generate string
    Random rand = new Random();
    char[] buffer = new char[length];
    for( int i = 0; i < length; ++i ) {
        buffer[i] = VALID_CHARACTERS[rand.nextInt( VALID_CHARACTERS.length )];
    }
    //
    return new String( buffer );
}

这个简单的方法使用有效字符的常量,每次从中随机轮询一个字符,以构建所需长度的字符串。

例如,要获取10个字符的字母数字字符串,可以这样方式调用方法:

getRandomString( 10 );