Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';t创建一种方法,使单词和字母随机可见_Java - Fatal编程技术网

Java Can';t创建一种方法,使单词和字母随机可见

Java Can';t创建一种方法,使单词和字母随机可见,java,Java,我正在尝试创建一种方法,使单词的某些字母可见,而其他字母可见*。这实际上是一个简单的猜字游戏。我要求用户选择他们是想给出答案还是请求一封信。例如,如果答案是“ball”,用户决定请求一个单词,则ball应该变成“*a**” 这就是我想出的方法: public static void showALetter(String correctAnswer) { int randomLetterIndex = (int) Math.random() % (correctAnswer.length(

我正在尝试创建一种方法,使单词的某些字母可见,而其他字母可见*。这实际上是一个简单的猜字游戏。我要求用户选择他们是想给出答案还是请求一封信。例如,如果答案是“ball”,用户决定请求一个单词,则ball应该变成“*a**”

这就是我想出的方法:

public static void showALetter(String correctAnswer) {
    int randomLetterIndex = (int) Math.random() % (correctAnswer.length());

    for (int i = 0; i < correctAnswer.length(); i++) {
        if (i == randomLetterIndex) {
            System.out.print(correctAnswer.charAt(randomLetterIndex));
        } else {
            System.out.print("*");
        }
    }
}
publicstaticvoidshowaletter(字符串更正应答){
int randomLetterIndex=(int)Math.random()%(correctAnswer.length());
对于(int i=0;i
它只在每次请求时显示正确答案的第一个字母。我该怎么办?

Math.random()返回一个从零到一的数字。所以,你的随机字母索引将始终为零。用这个代替

(int) (Math.random() * correctAnswer.length())
这将给出一个介于0和correctAnswer之间的随机数。length()-1。

数学。random()返回一个从0到1的数字。所以,你的随机字母索引将始终为零。用这个代替

(int) (Math.random() * correctAnswer.length())
这将给出一个介于0和correctAnswer之间的随机数。length()-1。

Math.random()
返回一个值介于0和1之间的
双精度(
[0.0,1.0)
以数学间隔编写)。这不是您想要的,因此您需要使用更新的
java.util.Random
类:

Random random = new Random();
int randomLetterIndex = random.nextInt(correctAnswer.length());
random.nextInt(int-limit)
方法将返回一个从零(包括)到
limit(不包括)的值,这是您在此处需要的值

如果要反复使用随机数,请将
random
实例创建为静态类成员,并让方法引用该实例,以便只创建一次对象。

Math.random()
返回一个值介于0和1之间的
double
(从技术上讲
[0.0,1.0)
以数学间隔编写)。这不是您想要的,因此您需要使用更新的
java.util.Random
类:

Random random = new Random();
int randomLetterIndex = random.nextInt(correctAnswer.length());
random.nextInt(int-limit)
方法将返回一个从零(包括)到
limit(不包括)的值,这是您在此处需要的值

如果要反复使用随机数,请将
random
实例创建为静态类成员,并让您的方法引用该实例,以便只创建一次对象。

Math.random()
返回大于或等于0小于1的双精度,
(int)Math.random()
将始终返回0

使用

模在这里是无用的,这样你总是在给定的字符串中点击,因为
(int)
cast返回下限值,所以结果永远不会等于或高于
correctAnswer.length()
Math.random()
返回一个大于或等于0小于1的双精度,
(int)Math.random()
将始终返回0

使用


模在这里是无用的,这样你总是在给定的字符串中点击,因为
(int)
cast返回下限值,所以结果永远不会等于或高于
correctAnswer.length()
int randomLetterIndex=(int)(Math.random()*correctAnswer.length();
int randomLetterIndex=(int)(Math.random()*correctAnswer.length());
无需使用
Math.floor()
Yups.int返回下限值。感谢无需使用
Math.floor()
Yups.int返回下限值。谢谢