Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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 刽子手检查单词中是否包含字符串并替换它?_Java_String_If Statement_Replace - Fatal编程技术网

Java 刽子手检查单词中是否包含字符串并替换它?

Java 刽子手检查单词中是否包含字符串并替换它?,java,string,if-statement,replace,Java,String,If Statement,Replace,我用java创建了一个刽子手游戏。我不知道如何检查和更换它。一切正常,字符串是正确的,游戏板也很好。例如,游戏板给我单词的长度 简单地说,我的问题是如何让userinput检查字符串单词的位置,然后转到battleboard,用该位置中的单词wich find更改下划线 我希望你们能帮我,我一直在努力挣扎 致意 MichaelDev有几种方法可以实现绞刑。我将向您展示一种易于理解、不注重效率的方法 您需要知道最后一个单词,并记住用户猜到的所有字符: final String word = ...

我用java创建了一个刽子手游戏。我不知道如何检查和更换它。一切正常,字符串是正确的,游戏板也很好。例如,游戏板给我单词的长度

简单地说,我的问题是如何让userinput检查字符串单词的位置,然后转到battleboard,用该位置中的单词wich find更改下划线

我希望你们能帮我,我一直在努力挣扎

致意
MichaelDev有几种方法可以实现绞刑。我将向您展示一种易于理解、不注重效率的方法

您需要知道最后一个单词,并记住用户猜到的所有字符:

final String word = ... // the random word
final Set<Character> correctChars = new HashSet<>();
final Set<Character> incorrectChars = new HashSet<>();
最后你需要一些东西把单词打印成u等等。为此,我们将替换correctChars中不包含的所有字符:

然后,替换模式可能看起来像?i[^aekqw]。?i匹配不区分大小写,[…]是一组要匹配的符号,^否定该组。因此,[…]中不包含的所有字符都将被替换

和一个小检查,如果游戏已经完成:

if (wordToDisplay.equals(word)) {
    System.out.println("You won!");
} else if (incorrectChars.size() > 10) {
    System.out.println("You guessed wrong 10 times, you lost!");
} else {
    ... // Next round starts
}

你的问题很不清楚。你能说得更具体点吗?如果isTrue==true,可能这就是问题所在?我想他指的是显示这个词的主要逻辑,例如“e”并记住正确的字符。ACV不,没关系,只要检查输入是否为1个数字我就试试我的,但是
final char userGuess = ... // input from the user
if (correctChars.contains(userGuess) || incorrectChars.contains(userGuess) {
    System.out.println("You guessed that already!");
} else if (word.contains(userGuess)) {
    correctChars.add(userGuess);
    System.out.println("Correct!");
} else {
    incorrectChars.add(userGuess);
    System.out.println("Incorrect!");
}
String replacePattern = "(?i)[^";
for (Character correctChar : correctChars) {
    replacePattern += correctChar;
}
replacePattern += "]";

final String wordToDisplay = word.replaceAll(replacePattern, "_");
System.out.println("Progress: " + wordToDisplay);
if (wordToDisplay.equals(word)) {
    System.out.println("You won!");
} else if (incorrectChars.size() > 10) {
    System.out.println("You guessed wrong 10 times, you lost!");
} else {
    ... // Next round starts
}