以下代码编译正常,但不会产生位数
ganerateNewRandom("aaaa", 3)
结果为aaa435
。
以下代码编译正常,但不会产生位数
import java.util.*;
public class Student
{
private String studentId;
private String name;
private Random random;
public Student( String name)
{
studentId = "UnKnow";
this.name = name;
random = new Random();
}
public String ganerateNewRandom(String prefix, int number)
{
int index = random.nextInt(number);
return prefix + number + "";
}
}
答案 0 :(得分:4)
public String ganerateNewRandom(String prefix, int number) { //sic
StringBuffer ret = new StringBuffer(prefix);
for(int i=0;i<number;i++) ret.append(random.nextInt(1000));
return ret.toString();
}
在上面引用的案例中,nextInt(3)将返回0,1或2.没有你要找的东西。
答案 1 :(得分:2)
Random.nextInt(int n)
州的API:
返回一个伪随机数,在0之间均匀分布的int值 (包括)和指定值(不包括)
如果您要生成3个随机数,请创建for-loop
以追加n
生成来自Random
的数字,并将其附加到prefix
。
答案 2 :(得分:1)
在这里使用String.format
可能值得:
static private Random random = new Random();
public static String ganerateNewRandom(String prefix, int digits) {
return String.format("%s%03d",
prefix,
random.nextInt((int)Math.pow(10, digits)));
}
注意:
random.nextInt
的参数是上限,而不是位数。您需要10^digits
才能获得所需的号码。%03d
将填充任何数字&lt; 100为你的零。