在Java中生成一个随机字符串[关闭]
Posted
技术标签:
【中文标题】在Java中生成一个随机字符串[关闭]【英文标题】:Generate a random string in Java [closed] 【发布时间】:2018-03-24 02:33:42 【问题描述】:我想在每次用 Java 编译程序时生成一个 6 字符的随机字符串。
例如:AXFGCD、GDGXSD、PLRSFX、GLTSDL
public class generate
public static void main(String args[])
generate();
string word = "";
string Characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
void generate(int x)
if (x==7) return;
int time = System.currentTimeMillis() % 33; //to generate time in mili second
word += characters.charAt(time);
System.out.println(time);
return generate(++x);
输出是
A,AX,AXF,AXFC,AXFCG,AXFCGA
但我想要直接的 6 位字
【问题讨论】:
@OHGODSPIDERS 而且string
不是类型。
你为什么要使用递归?
要迂腐——虽然我敢肯定你不在乎——这是在运行时而不是编译时生成的。
@rohitjoshi9023 不要编辑带有代码修复的问题。如果代码以某种方式被破坏,请将其作为评论或答案提出。
How to generate a random alpha-numeric string?的可能重复
【参考方案1】:
你的方法正在达到你的目的。您的问题是您通过在您的方法中打印它们来“记录”您的步骤(此外,还有像 string
这样的错误,错误地调用了您的 generate
功能,但是由于您给了我们输出,我猜您在某些地方修复了它点)。
如果你这样做:
public class generate
public static void main(String args[])
generate(0);
System.out.println(word); // Here word is complete
String word = "";
String Characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
void generate(int x)
if (x==7) return;
int time = System.currentTimeMillis() % 33; //to generate time in mili second
word += characters.charAt(time);
return generate(++x);
它会起作用的。或者,要在函数中打印 word
,您可以使用迭代方法:
void generate()
for (int i = 6; i --> 0;)
int time = System.currentTimeMillis() % 33; //to generate time in mili second
word += characters.charAt(time);
System.out.println(word);
【讨论】:
【参考方案2】:这是用 Notepad++ 编写的,因为我目前没有任何可用的 IDE,我希望它可以编译,如果可以的话,它应该可以工作 :) 如果你想使用大写字符,只需编辑 for 循环!
public class generate
private static char[] characters;
private static Random random = new Random();
public static void main(String args[])
characters = new char[26];
int index = 0;
for (char c = 'a'; c <= 'z'; c++)
characters[index++] = c;
System.out.println(generate());
static String generate()
String word = "";
for(int i = 0 ; i < 7 ; i++)
word += Character.toString(characters[random.nextInt(characters.length)]);
return word;
编辑:使用您的代码!
public class generate
public static void main(String args[])
generate();
string word = "";
string Characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
void generate(int x)
if (x==7)
System.out.println(word);
return;
int time = System.currentTimeMillis() % 33; //to generate time in mili second
word += characters.charAt(time);
return generate(++x);
【讨论】:
非常有用,谢谢!以上是关于在Java中生成一个随机字符串[关闭]的主要内容,如果未能解决你的问题,请参考以下文章