3

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

4

10 回答 10

3

这是作业吗?如果是这样,请适当地标记您的问题。

这是一条线索:字母和数字都是字符,您可以将它们存储在数组中。

于 2010-03-19T15:03:10.737 回答
1

使用我的图书馆美元很简单:

@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));
}
于 2010-03-19T15:11:51.237 回答
1

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

'A' + RNG.nextInt(26);

将返回一个介于“A”和“Z”之间的随机字母,其中RNGjava.util.Random.

有效地构建字符串。用一个StringBuilder

于 2010-03-19T15:06:48.090 回答
1

不确定这是否是家庭作业(看起来是这样),所以我会尝试为您指出可能的方法的正确方向:

  • 回想一下,随机整数可以是其他两个指定整数 Y 和 Z 之间的任何整数 X。
  • 你怎么能从一个随机数变成一个随机字符?
  • 你怎么能把 0 到 13 之间的随机数变成 0 到 26 之间的偶数呢?一个奇数?
  • 您如何利用这些想法/概念来回答这个问题?
于 2010-03-19T15:43:04.450 回答
0

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

于 2010-03-19T15:03:47.173 回答
0

你可以看看RandomStringUtils,或者至少看看它的源代码。

于 2010-03-19T18:39:07.193 回答
0

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

于 2010-03-19T15:05:33.020 回答
0

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

  • 字母表中所有 26 个字符的数组,并且,
  • 1 或 2 个随机数生成器实例。
于 2010-03-19T15:05:59.647 回答
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;
于 2010-03-19T15:35:54.723 回答
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;
    }
}

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

于 2012-08-28T18:32:13.773 回答