Java 如何用相同长度的符号替换字符串
我正在创建一个审查,但我不确定如何用符号替换单词的长度* 这就是我目前所拥有的Java 如何用相同长度的符号替换字符串,java,string,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))
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;
}
}
显然,这将用just替换字符串cuss*
passage.replaceAll(cuss, "*");
但我想让它把字符串中的每个字母都换成*
但我不知道该怎么做。。我有一种感觉,我最终会因为没能弄明白这一点而打自己的脸
所以,如果字符串cuss是test。
测试将替换为****(忽略间距)
如果这串咒语是苹果
苹果将被*****(忽略间距)取代
我要它把字符串中的每一个字母都换成cuss*
替换所有可以执行的字符
String cussStar = cuss.replaceAll(".", "*");
绝对不执行任何操作,因为它返回一个您甚至没有使用的字符串。你必须做到:
passage = passage.replaceAll(cuss, "*");
但考虑到你想用相同长度的符号来替换脏话,也许你可以尝试以下方法:
char[] symbols = new char[cuss.length()];
Arrays.fill(symbols, '*');
passage = passage.replaceAll(cuss, new String(symbols));
定义“字母”。顺便说一句,replaceAll使用正则表达式。你的意思是“单词替换”?或者旧的方式=正则表达式会这样做:这将导致
char[] symbols = new char[cuss.length()];
Arrays.fill(symbols, '*');
passage = passage.replaceAll(cuss, new String(symbols));