在Java中循环时,如何根据单词的长度定义猜测的次数?

在Java中循环时,如何根据单词的长度定义猜测的次数?,java,arrays,string,while-loop,Java,Arrays,String,While Loop,当程序要求输入与单词长度一样多的输入时,我想获得一些编码这一部分的帮助 因此,当我们启动程序时,它会从数组中随机选取一个单词,例如,如果我们要查找的单词是“team”,这意味着我们有四次猜测 我试图用下面的片段来解决它。看起来很简单,但我遗漏了一些东西: while(!guess.equals(choosenWord) && letters <= choosenWord.length()) { System.out.print("Your g

当程序要求输入与单词长度一样多的输入时,我想获得一些编码这一部分的帮助

因此,当我们启动程序时,它会从数组中随机选取一个单词,例如,如果我们要查找的单词是“team”,这意味着我们有四次猜测

我试图用下面的片段来解决它。看起来很简单,但我遗漏了一些东西:

while(!guess.equals(choosenWord) && letters <= choosenWord.length()) {
                System.out.print("Your guess is: ");
                guess = sc.nextLine();

while(!guess.equals(choosenWord)&&letters这里有一个三元运算符(
?:
)的解决方案:

。。。
猜测=sc.nextLine();
for(char c:chosenWord.toCharArray()){
System.out.print(guess.contains(String.valueOf(c))?c:'-');
}
...
完整的解决方案(经过测试和验证),只需运行即可

publicstaticvoidmain(字符串[]args){
findTheWord();
}
公共静态void findTheWord(){
//初始化
扫描仪sc=新的扫描仪(System.in);
字符串[]字={
“狗”、“猫”、“房子”、“爱”、“朋友”、“纸”、“夏天”、“薯条”,
“数字”、“文件”、“程序”、“乐透”、“工作”、“搞笑”、“数据库”,
“团队”、“个人资料”、“facebook”、“bean”、“冬季”、“春季”、“java”,
“检查”、“医院”、“出生”、“婴儿”、“新生儿”、“飞机”,
“幼儿园”、“秋季”};
字符串randomWord=单词[(int)(Math.random()*31)];
字符串猜测=”;
//开始猜测

for(int i=0;i为什么
for
循环?您可以增加循环体中的猜测“counter”
字母
,循环将在到达单词末尾时停止。您完全正确,它可以工作。
import java.util.Scanner;


public class FindTheWord {


    public static void main(String[] args) {

        findTheWord();
    }

    public static void findTheWord() {
        Scanner sc = new Scanner(System.in);
        String[] words = {
            "dog", "cat", "house", "love", "friend", "paper", "summer", "chips",
            "number", "file", "program", "lotto", "work", "funny", "database",
            "team", "profile", "facebook", "bean", "winter", "spring", "java", 
            "examination", "hospital", "birth", "baby", "newborn", "airplane",
            "kindergarten", "autumn"};

        int randomWord = (int) (Math.random() * 31);
        String choosenWord = " ";
        int letters = 0;
        String guess = " ";
        char ch = ' ';

        for (int i = 0; i < words[randomWord].length(); i++) {
            choosenWord = words[randomWord];

        }
        for (int j = 0; j < choosenWord.length(); j++) {
            letters = choosenWord.length();


        while(!guess.equals(choosenWord) && letters <= choosenWord.length()) {
            System.out.print("Your guess is: ");
            guess = sc.nextLine();

        }
        }
        System.out.println(words[randomWord]);
        System.out.println(letters);
    }


    }
   public static void main(String[] args) {
    findTheWord();
}

public static void findTheWord() {

    //Init
    Scanner sc = new Scanner(System.in);
    String[] words = {
            "dog", "cat", "house", "love", "friend", "paper", "summer", "chips",
            "number", "file", "program", "lotto", "work", "funny", "database",
            "team", "profile", "facebook", "bean", "winter", "spring", "java",
            "examination", "hospital", "birth", "baby", "newborn", "airplane",
            "kindergarten", "autumn"};

    String randomWord = words[(int) (Math.random() * 31)];
    String guess = "";

    //Start Guessing
    for (int i = 0; i <= randomWord.length(); i++) {

        if (!guess.equals(randomWord)) {
            System.out.print("Your guess is: ");
            guess = sc.nextLine();
            String result = checkGuessMatch(randomWord, guess);
            if (!result.isEmpty())
                System.out.println(result);
        } else {
            System.out.println("#################################");
            System.out.println("############SUCCESS#############");
            System.out.println("##########THE WORD WAS###" + guess);
            System.out.println("#################################");
            return;
        }
    }

    System.out.println("####GAME OVER###");
    System.out.println("THE WORD WAS = " + randomWord);
}

public static String checkGuessMatch(String word, String guess) {
    Boolean sameIndexIsExist = false;
    char[] wordChars = word.toCharArray();
    char[] guessChars = guess.toCharArray();
    String target = "";

    for (int i = 0; (i < word.length()); i++) {

        if (i < guess.length() && guessChars[i] == wordChars[i]) {
            target = target + guessChars[i];
            sameIndexIsExist = true;
        } else
            target = target + "-";
    }
    if (!sameIndexIsExist)
        return "";
    else return target;

}