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