根据循环中的位置替换字符

时间:2012-09-02 13:50:44

标签: java netbeans

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

中的单词

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

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

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

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

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

现在这个循环返回

0
2

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

2 个答案:

答案 0 :(得分: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()作为掩码词,直到您选择了一个新词。当你得到一个新单词时,你会将掩盖的单词重置为'-------'等。

答案 1 :(得分:0)

你可以使用

String Str = new String(&#34;欢迎使用Tutorialspoint.com&#34;);

//所有出现的&#39; o&#39;被替换为&#39; T&#39;

System.out.println(Str.replace(&#39; o&#39;,&#39; T&#39;));