【发布时间】:2016-10-30 10:26:58
【问题描述】:
public void reveal(char c) {
for(int i = 0; i < sizeReset; i++) {
if(wordCompare.charAt(i) == c) revealed.set(i);
if(revealed.cardinality() == 0) {
eo.add(String.valueOf('*'));
}
else {
if(revealed.get(i) == true) {
eo.add(String.valueOf(wordCompare.charAt(i)));
}
else {
eo.add(String.valueOf('*'));
}
}
}
System.out.println(eo.toString());
jTextPane1.setText(eo.toString().replace("[", "").replace("]", "").replace(",", ""));
}
注意:
String wordCompare - 包含要猜测的单词。
char c - 是用户输入的字母
revealed - 被声明为 BitSet
int sizeReset - 是要猜测的单词的大小
假设 ArrayList eo = new ArrayList();在方法之外声明。 (全球)
==============================================
这是我目前所拥有的。假设我会猜“香蕉”。将显示用户输入的字母,其余的将标记为“*”。
=============================================
问题:它将包括“”在内的整个值附加到 arrayList 中存储值的末尾,而不是我希望它们位于的特定位置。(“”也应该附加时不包括在内。只有用户输入的字母)。 *刽子手游戏的逻辑。
示例:
输入的第一个字母:“a”
输出:
_a_a_a
输入的第二个字母:“n”
输出:
_ _n_n_
(这是错误的)
正确的输出应该是:
_anana
================================================
我是字符串操作的新手,我在这部分遇到了麻烦。我读过一些关于 StringBuilder 的东西,但我还没有弄清楚。如果你能帮助我,那就太好了。提前致谢。 :)
【问题讨论】: