0

我正忙于一个刽子手应用程序,我已经到了现在必须显示秘密单词的地步……现在我正在考虑创建两个字符串,它们是从文本文件中检索随机单词的原始字符串和隐藏的秘密词......问题是我不知道如何在'-'中隐藏一个词

所以我创建了以下两个字符串

String original = readWord();
String secret = new String(new char[original.length()]).replace('\0', '-');

现在我的想法是在原始字符串中找到字符的位置,然后用秘密字符串中的字符替换'-'

现在的问题是当我的原始单词是例如“大象”时,所以我找到了一个循环来找到搜索到的字符的位置

String s = "elephant";
int pos = s.indexOf('e');
while (pos > -1) {
System.out.println(pos);
pos = s.indexOf('e', pos + 1);

现在这个循环返回

0
2

我的问题是如何使用此循环替换秘密字符串中的“-”是否返回超过 1 个位置?

4

2 回答 2

3

因为String是不可变的,你可以StringBuilder用来构建一个新的字符串:

StringBuilder builder = new StringBuilder(secret);
for (int i = 0; i < original.length(); i++) {
    if (original.charAt(i) == guessLetter) {
        builder.setCharAt(i, guessLetter);
    }
}
secret = builder.toString();

您将使用 builder.toString() 作为您的掩码单词,直到您选择一个新单词。当你得到一个新单词时,你会将被屏蔽的单词重置为'-------'etc。

于 2012-09-02T13:57:22.003 回答
0

您可以使用

String Str = new String("欢迎来到 Tutorialspoint.com");

// 所有出现的 'o' 都替换为 'T'

System.out.println(Str.replace('o', 'T'));

于 2012-09-02T14:32:22.733 回答