0

絞首刑執行人アプリで忙しく、合言葉を表示しなければならないところまで来てしまった...今、テキストファイルからランダムな単語を取得し、オリジナルの2つの文字列を作成しようと考えています。隠れる秘密の言葉...問題は、「-」で単語を隠す方法がわからないことです

だから私は次の2つの文字列を作成しました

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

今私の考えは、元の文字列で文字の位置を見つけて、秘密の文字列で「-」をその文字に置き換えることです

問題は、元の単語がたとえば「elephant」であるため、検索された文字の位置を見つけるループを見つけたときです

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

今、このループは戻ります

0
2

私の質問は、返される位置が複数ある場合に、このループを使用してシークレット文字列の「-」を置き換えるにはどうすればよいですか?

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 に答える