将所有字符(在StringBuilder中)替换为其出现的另一个字符串

时间:2017-09-02 12:29:49

标签: java string eclipse char stringbuilder

好吧,所以我让自己成为一个刽子手游戏,对Java来说不是那么新,但我还在学习。我遇到了一个困扰我的问题。

我需要在其索引中的“字符串”构建器(具有与生成的字相同的字符数)内替换所有字符(如果用户已正确猜出其中一个字母)。我知道有点复杂,但这里有一些代码。

StringBuilder wordTemplate = new StringBuilder();
for (int i = 0; i < theWord.length(); i++) {
    wordTemplate.append('?');
}

此代码创建一个与生成的单词具有相同字符数量的字符串,因此如果单词为“Hello”,则会生成“?????”当你猜出每个字母时,它会取代字母的相应索引(例如,如果我猜到了O,它就会打印出“???? o”等。)

但是,如果一个字母多次重复出现,则猜测仅影响1个字母,而该字母仅影响该字母,因为其他事件永远不会改变,从而导致该字永远不会完成。我已经搜索了很长一段时间,找不到一个解决方案来帮助我从他们的多个单词索引中替换所有出现的猜测字符。

如果这对我现在用来替换索引中的字母的代码有帮助,

if (theWord.contains(guess)) {  
    wordTemplate.deleteCharAt(theWord.indexOf(guess));
    wordTemplate.replace(theWord.indexOf(guess), theWord.indexOf(guess), guess);
    System.out.println(wordTemplate);
}

如前所述,这仅适用于每个char中的1个,并且不适用于多次出现。在此先感谢:)

2 个答案:

答案 0 :(得分:1)

试试这个:

$("#form input").val('351');
//or
$("input[id=idelement]").val('351');

答案 1 :(得分:0)

您可以替换以下代码:

wordTemplate.deleteCharAt(theWord.indexOf(guess));
wordTemplate.replace(theWord.indexOf(guess), theWord.indexOf(guess), guess);

wordTemplate = new StringBuilder(wordTemplate.toString().replace("?", guess));