我正在创建一个审查员,但我不确定如何用符号*
替换单词的长度这是我到目前为止所拥有的
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将替换为* * * * *(忽略间距)
答案 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(".", "*");