如何使用相同长度的符号替换字符串

时间:2014-02-23 16:22:56

标签: java string

我正在创建一个审查员,但我不确定如何用符号*

替换单词的长度

这是我到目前为止所拥有的

package com.rs.game.player.content;

public class CensorHandler {

    private String cuss = "test";

    public boolean checkFilter(String passage) {
        if(passage.toLowerCase().contains(cuss)) 
           return true;
        return false;
    }

    public String replaceWord(String passage) {
        if(checkFilter(passage)) {
           passage.replaceAll(cuss, "*");

        }
        return passage;
    }

}

显然,这将用*

替换字符串cuss
 passage.replaceAll(cuss, "*");

但我希望用*替换字符串cuss的每个字母 我不知道该如何做到这一点。我有一种感觉,我最终会因为无法解决这个问题而面对自己。

所以,如果字符串cuss是测试。 test将替换为* * * *(忽略间距)

如果字符串cuss是apple apple将替换为* * * * *(忽略间距)

2 个答案:

答案 0 :(得分:2)

passage.replaceAll(cuss, "*"); 

绝对没有,因为它会返回String,您甚至不会使用它。你必须这样做:

passage = passage.replaceAll(cuss, "*");

但是考虑到你想用相同长度的符号替换cuss词,也许你可以尝试类似的东西:

char[] symbols = new char[cuss.length()];
Arrays.fill(symbols, '*');
passage = passage.replaceAll(cuss, new String(symbols));

答案 1 :(得分:1)

  

我希望用*

替换字符串cuss的每个字母

替换你可以做的每个角色

String cussStar = cuss.replaceAll(".", "*");