我正在为Java介绍一个类,并且我们有一个处理hang子手游戏的项目。我有大部分的代码已经解决了,但是有一个我似乎无法解决的错误。Java中的基本Hang子手游戏(主要涉及字符串操作)
首先,程序提示用户输入一个字母和一个他们认为该字母的空格,然后程序在一系列连字符中显示一个单词,如果用户做出正确的猜测,则相应的字母连字符被替换为所述字母。
出于测试目的,该词已默认为narrow
。
所以,如果我猜的信r
和空间,我是猜指数2,程序就会给我:
Guess a letter: r
Guess a space: 2
Guess: --r---
我遇到的问题是,当我猜指数3对于空间并尝试猜测下一个r,该程序只给了我以前的相同输出。
我们不允许使用数组或字符串生成器,因为我们还没有讨论过它们。
这里是我的变量:
// default word for testing
String blank = "narrow";
// variables to manipulate the string
String start = "";
String end = "";
String word = "";
// variables for input and output
// input is used for the user's letter guess
String input;
// space is used for the user's index guess
String space = "";
// guess is used at the end to display the word to the user and set equal to word after
// it has been manipulated
String guess = "";
这里就是串被操纵的代码。
for (int i = 0; i < blank.length(); i++) {
if (i == blank.indexOf(input)) {
start = guess.substring(0, i);
end = guess.substring(i + 1);
word = start.concat(input).concat(end);
}
}
我认为它与if statement
的事,但我已经尝试了一些其他的事情,他们都没有奏效。任何帮助,将不胜感激。
谢谢。
如果问题是字符串操作,那么为什么不把自己的包装类'的char []',那也可以拥有到正在实际字的引用猜到了。操作起来会更容易,因为它不是不可变的。你可以填写字符。 –
我不确定我们是否可以这样做,但无论如何感谢 – Equinoxinator