一起生成随机字母和数字

时间:2010-03-19 15:00:38

标签: java random alphanumeric

生成6个字符:第一个字符是从字母表中随机生成的,字母列表中的奇数排序(A,C,E,...,Y)第二个字符是从字母表中随机生成的,在字母表中排序均匀(B,D,F,...,Z)第三个字符是从字母表列表(A到Z)中随机生成的,这三个数字中的每一个都是从1到9随机生成的。

10 个答案:

答案 0 :(得分:3)

这是家庭作业吗?如果是这样,请正确标记您的问题。

这是一个线索:字母和数字都是字符,你可以存储在一个数组中。

答案 1 :(得分:1)

在java中你可以做char算术。所以

'A' + RNG.nextInt(26);

会在“A”和“Z”之间返回一个随机字母,其中RNGjava.util.Random的实例。

有效地构建字符串。使用StringBuilder

答案 2 :(得分:1)

使用我的库dollar很简单:

@Test
public void generateRandomString() {
    String string = $('a', 'z').shuffle().slice(3).join() + // take 3 random letters
                    $('0', '9').shuffle().slice(3).join();  // take 3 random digits
    assertThat(string.length(), is(6));
}

答案 3 :(得分:1)

不确定这是否是作业(它看起来像是这样),所以我会试着指出你正确的方法:

  • 回想一下随机整数可以 两个之间的任何整数X. 指定的整数Y和Z。
  • 如何从随机数到随机CHARacter?
  • 你怎么能在0到13之间取一个随机数,把它变成0到26之间的偶数?奇数?
  • 您如何利用这些想法/概念来回答这个问题?

答案 4 :(得分:0)

使用随机生成器函数生成[0,26]范围内的数字,并将(int)'a'的值添加到该数字,并将结果转换回char

答案 5 :(得分:0)

生成一组介于0到61之间的数字(上下有61个字母加上数字)并将每个数字映射到[0-9a-zA-Z]中的一个,然后将整个事物连接起来。

答案 6 :(得分:0)

您可以使用的一些基本内容:

  • 字母表中所有26个字符的数组,
  • 随机数生成器的1或2个实例。

答案 7 :(得分:0)

  

我想生成6个随机字符,包括3个随机字母,后跟3个随机数字,但我一次只能生成字母或数字。

char a = randomLetter();
char b = randomLetter();
char c = randomLetter();

int x = randomNumber();
int y = randomNumber();
int z = randomNumber();

String result = new String()+a+b+c+x+y+z;

答案 8 :(得分:0)

您可以查看RandomStringUtils,或至少查看其源代码。

答案 9 :(得分:0)

尝试使用xegerbrics automaton

import nl.flotsam.xeger.Xeger;
import dk.brics.automaton.Automaton;

public class RandomizeString{
    public String generateRandomString(){
        String regex = "[ACEGIKMOQSUWY][BDFHJLNPRTVXZ][A-Z][0-9]{3}";
        Xeger generator = new Xeger(regex);
        String result = generator.generate();
        return result;
    }
}

了解更多信息,学习正则表达式。