【发布时间】:2017-05-18 06:17:12
【问题描述】:
我正在尝试制作一个经典的刽子手程序(GUI 很好,没问题),用户一次猜一个字母。问题是,当用户猜测一个字母时,它会用猜测的字母替换“_”的位置(如果该字母在单词中),但是当猜测下一个字母时,它会忘记最后的猜测,并且地方回到“_”。抱歉,如果不清楚,这里有一个例子
Word is tiger,
user guesses "g",
outputs _ _ g _ _,
user guesses "r",
outputs _ _ _ _ r.
我希望代码如何工作:
Word is tiger,
user guesses "g",
outputs _ _ g _ _,
user guesses "r",
outputs _ _ g _ r.
我怎样才能做到这一点?请记住,tiger 只是一个示例单词,单词是从数组中随机抽取的。我认为这样做的唯一方法是将子字符串的值更改为空白,但我不知道该怎么做。截至目前,用户从 GUI 窗口(该人本人所在的位置)猜测字母并通过按下按钮提交答案。输出现在只是打印在控制台上。
这是程序中麻烦的部分:
// guess is the name of JTextPane next to button
// randWord is the word pulled randomly from an array
private void guessLetter() {
guessedLetter = guess.getText();
if (randWord.contains(guessedLetter)){
reveal(); // method below
} else {
wrongGuesses++; // when wrongGuesses adds,
update(); // another body part is added, method not below
}
}
private void reveal() {
int start = randWord.indexOf(guessedLetter); //gets the index of the letter guessed
String print = blanks.substring(0, start) + guessedLetter + blanks.substring(start+1); //reveals the letter
System.out.println(print);//prints the revealed letter in correct spot
}
【问题讨论】:
-
已将
guessedLetters 保存在空白处? -
您应该尝试缩小您的问题范围。我认为一个完整的解决方案至少需要 50-100 行 Java 代码,这对于单个答案来说有点过于宽泛。
-
@d9ngle 差不多。如果正确,我希望
blanks的子字符串保存guessedLetter的值。看看我在帖子中的例子:) -
@TimBiegeleisen 我只是想问是否有办法改变子字符串的值。那不应该只需要几行吗?
-
我已经知道
reveal()方法的第3行需要改,但不知道改成什么。
标签: java string replace substring