虽然我对 Java 相对缺乏经验,但我已经使用 Java 编码了足够长的时间,知道这一点 这不是正常行为。基本上,程序打印文本很好,但“rand”变量打印数字、字符和字母的组合,如下所示。
我尝试将“rand”变量初始化为 nextInt() 方法,认为我将通过种子生成随机化结果的结果,但很快就明白这只会生成一个范围内的数字,而不是种子内的数字.
对于上下文,我正在创建一个 while 循环,根据用户提供的种子不断迭代随机数,直到用户输入单词“stop”来结束循环。
我该如何解决这个问题?
这是代码:
public static void WhileLoop(Scanner sc) {
System.out.println("\nWHILE LOOP");
System.out.println("Please enter a seed for the random number generator: ");
int seed = sc.nextInt();
Random rand = new Random(seed);
int loopCounter = 0;
String stop = "stop";
String yes = "yes";
while (loopCounter >= 0) {
System.out.println("\nHere's your random number: " + rand);
System.out.println("Would you like another number? Enter 'stop' to stop.");
String answer = sc.next();
loopCounter++;
if(answer.equals(yes)) {
continue;
}
if(answer.equals(stop)) {
break;
}
}
这就是让我烦恼的结果。
Here's your random number: java.util.Random@682a0b20
Would you like another number? Enter 'stop' to stop.
要在java中使用Random类获取随机数,您需要调用
rand.nextInt()
方法。
当它打印“
java.util.Random@682a0b20
”时,它会显示您创建的随机对象的哈希码,这就是计算机区分每个实例的方式。它只显示哈希码,因为没有特定于 Random 类的 toString()
方法在打印时将其表示为字符串。相反,它打印从 Object 类继承的 toString()
值。
您可能想查看 Random 类的 java 文档。
感谢@tgdavies,纠正我关于内存位置/哈希码的陈述。