String badWords = "fuck/kao";
String content = "我喜欢fuck";
String result = "";
String words[] = badWords.split("/");
for (int i = 0; i < words.length; i++)
{
result=content.replaceAll(words[i], "***");
}
//result=content.replaceAll("fuck", "***");
System.out.println(result);
为什么循环里面使用数组不能成功,而注释的那行能成功
用 / 分割 能分的出来 东西 吗。不能,所以 不行。
tring badWords = "fuck/kao";
String content = "我喜欢fuck";
String result = "";
String words[] = badWords.split("/");
for (int i = 0; i < words.length; i++)
{
content=content.replaceAll(words[i], "***");
}
System.out.println(content);
再说了 你的STRING 对象
要是你的换成数据应该就可以了啊
StringBuffer a = new StringBuffer("a");
StringBuffer b = new StringBuffer("b"); System.out.println(operate(a, b));
System.out.println("" + 'a' + 1);
System.out.println('a' + 1);
String badWords = "shift/kao";
String content = "likeshift";
String result = "";
String words[] = badWords.split("/");
System.out.println("words[0]="+ words[0]);
System.out.println("words[1]="+ words[1]);
for (int i = 0; i < words.length; i++)
{
result=content.replaceAll(words[i], "***");
}
//result=content.replaceAll("shift", "***");
System.out.println(result);
} static StringBuffer operate(StringBuffer x, StringBuffer y) {
x.append(y);
y = x;
return y;
}}
“/”是可以分割的。之后得
words[0]=shift
words[1]=kao在于
for (int i = 0; i < words.length; i++)
{
result=content.replaceAll(words[i], "***");//这句
}
result=content.replaceAll(words[i], "***");//这句用conten replaceALl了2次。
i = 0 时,第一次相当于
result=content.replaceAll("shift", "***");--》result = like***
i = 1 时,第二次相当于
result=content.replaceAll("kao", "***");--》result = likeshift所以最后的result还是原来的content内容。没变噢
第一次为
result=content.replaceAll("fuck", "***");
配皮和替换成功,此时result="我喜欢***"第二次为result=content.replaceAll("kao", "***");
这句话相当于
result=Pattern.compile(regex).matcher(content).replaceAll(repl)
由于Pattern.compile(regex).matcher(content)匹配不成功,所以最后result=content=我喜欢fuck