-3

我正在我的 com 课上做一个作业,要求我创造一个命运之轮游戏。我目前正在研究getDisplayedPhrase我将解释的方法。因此,对于这个程序,我有一个随机短语,例如,
"this is a question, thanks for helping!"
我希望这个短语更改为
"**** ** * ********, ****** *** *******!"
这就是短语在他们猜测之前应该是什么样子。如您所见,我正在尝试仅更改字母,因此我创建了一个

private static final String alpha ="abcdefghijklmnopqrstuvwxyz" 

以避免任何标点符号。这是我到目前为止所拥有的:

public String getDisplayedPhrase() {
    for (int i = 0; i<secretPhrase.length(); i++){
        I don't know what to put here and what method to use???
                I'm thinking of using charAt() or indexOf()
    }
    return displayedPhrase;
}
4

3 回答 3

6
return secretPhrase.replaceAll("[a-zA-Z]","*")
于 2012-10-30T21:41:34.397 回答
3

您可以使用 Character 类来确定字符是否为字母。

   String s = "this is a question, thanks for helping!";
            StringBuilder rep="";
            for(int i=0; i<s.length();i++){
                if(Character.isAlphabetic(s.charAt(i))){
                    rep.append("*");
                }
                else {
                    rep.append(s.charAt(i));
                }
            }
            System.out.println(rep);

您还可以使用String.replace()和替换现有字符串而不是额外的新字符串

  for(int i=0; i<s.length();i++){
            if(Character.isAlphabetic(s.charAt(i))){
                s=s.replace(s.charAt(i), '*');
            }

        }
        System.out.println(s);

输出:

**** ** * ********, ****** *** *******!
于 2012-10-30T21:39:58.067 回答
2

使用String.replaceAll(String regex, String replacement). 既然是作业,我会让你研究正则表达式部分。

于 2012-10-30T21:40:02.087 回答