【发布时间】:2017-02-10 20:35:18
【问题描述】:
我正在学习 Java 入门课程,我们有一个处理刽子手游戏的项目。我已经完成了大部分代码,但有一个我似乎无法解决的错误。
首先,程序提示用户输入一个字母和一个他们认为该字母所在的空格,然后程序以一系列连字符显示一个单词,如果用户猜对了,则显示相应连字符中的字母替换为上述字母。
出于测试目的,该词已默认为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[]创建自己的包装类,它也可以包含对正在猜测的实际单词的引用。操纵它会更容易,因为它不是一成不变的。你可以只填写字符。 -
我不确定我们是否可以这样做,但还是谢谢
标签: java string if-statement