我有一个hang子手应用程序,我从我创建的Db中获取一个随机单词,然后将它保存到randomedWord
然后我为另一个字符串保存randomedWord
,但仅替换为“_”。显示此hiddenWord
,以便用户知道有多少个字符。如何使用replaceAll()正确
当用户点击输入onlicklistener
火灾guess()
方法:
我具有以下其中initates具有TextView(userInput)
的值的局部字符串的代码。然后,如果randomedWord
包含我想猜测到的位置与randomedWord
中的位置相同,但是现在更改为hiddenWord
,然后再次更新TextView
。
竞猜方法:
public void guess()
{
String guess = userInput.getText().toString();
if(randomedWord.contains(guess))
{
hiddenWord = hiddenWord.replaceAll(guess, guess);
this.wordHolder.setText(hiddenWord);
} else
{
showImages();
}
}
我认为这个问题是这一行:
hiddenWord = hiddenWord.replaceAll(guess, guess);
因为hiddenWord
只包含 “_”,因此我不能代替(猜,猜),其中首先是什么被替换,最后是WITHWHAT。
如何将randomedWord
中的相同位置替换为hiddenWord
?
完全就是我一直在寻找,爱你的人! –
虽然有一个问题,当我使用indexOf时,我是否会得到所有的出现?我的意思是在香蕉中,我会得到[1,3,5]作为索引吗?然后你可能会认为setCharAT(index,guess)会填充所有这些索引,但它并不是,它只是填补了第一次出现。所以,如果我有更多相同的字母它不能正常工作。你对此也有任何意见吗? –
是的。方法定义看起来像'indexOf(int index,char guess)'。返回字符'guess'的'index'后的第一个发生的索引。所以当我们改变索引的值时,它会沿着字符串迭代来查找每个事件。我测试它,它可以处理多个角色的出现(请参阅http://ideone.com/TeqsH)。 –