生成 6 个字符:第一个字符是从字母表中奇数顺序的字母(A、C、E、...、Y)中随机生成的,第二个字符是从字母表中偶数顺序的字母中随机生成的(B, D, F, ..., Z) 第三个字符是从字母表(A 到 Z)中随机生成的,三个数字中的每一个都是从 1 到 9 中随机生成的。
问问题
9440 次
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”之间的随机字母,其中RNG
是java.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
尝试使用xeger和brics 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 回答