替换字符串中的一些字符

时间:2012-10-30 21:35:44

标签: java string replace char

我正在我的课程中完成一项任务,这需要我创造一个财富游戏之轮。我目前正在研究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 个答案:

答案 0 :(得分:6)

return secretPhrase.replaceAll("[a-zA-Z]","*")

答案 1 :(得分: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()并替换现有的String而不是额外的新String

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

        }
        System.out.println(s);

输出:

**** ** * ********, ****** *** *******!

答案 2 :(得分:2)

使用String.replaceAll(String regex, String replacement)。由于这是一项任务,我将让你对正则表达式部分进行研究。

答案 3 :(得分:2)

Pattern letterDigitPattern = Pattern.compile([a-zA-Z0-9]);
public String getDisplayedPhrase() {
    Matcher m = letterDigitPattern.matcher(secretPhrase);
    return m.replaceAll("*");
}