Java 替换索引处的所有字符(在StringBuilder中),从其出现的另一个字符串开始
好吧,我正在做一个刽子手游戏,对Java来说并不陌生,但我还在学习。我有个问题一直困扰着我 我需要在索引处替换字符串生成器(与生成的单词具有相同的字符数)中的所有字符(如果用户正确猜测了其中一个字母)。我知道有点复杂,但这里有一些代码Java 替换索引处的所有字符(在StringBuilder中),从其出现的另一个字符串开始,java,string,eclipse,char,stringbuilder,Java,String,Eclipse,Char,Stringbuilder,好吧,我正在做一个刽子手游戏,对Java来说并不陌生,但我还在学习。我有个问题一直困扰着我 我需要在索引处替换字符串生成器(与生成的单词具有相同的字符数)中的所有字符(如果用户正确猜测了其中一个字母)。我知道有点复杂,但这里有一些代码 StringBuilder wordTemplate = new StringBuilder(); for (int i = 0; i < theWord.length(); i++) { wordTemplate.append('?'); } 如
StringBuilder wordTemplate = new StringBuilder();
for (int i = 0; i < theWord.length(); i++) {
wordTemplate.append('?');
}
如前所述,这只适用于每个字符中的1个,不适用于多次出现。提前感谢:)您可以替换以下代码:
wordTemplate.deleteCharAt(theWord.indexOf(guess));
wordTemplate.replace(theWord.indexOf(guess), theWord.indexOf(guess), guess);
到
试试这个:
String guess = "l";
int start = 0;
do {
int index = theWord.indexOf(guess, start);
if(index >= 0) {
wordTemplate.replace(index, index + 1, guess);
start = index + 1;
} else
break;
} while (true);
System.out.println(wordTemplate);
wordTemplate = new StringBuilder(wordTemplate.toString().replace("?", guess));
String guess = "l";
int start = 0;
do {
int index = theWord.indexOf(guess, start);
if(index >= 0) {
wordTemplate.replace(index, index + 1, guess);
start = index + 1;
} else
break;
} while (true);
System.out.println(wordTemplate);