java中用String和StringBuffer过滤敏感词汇
一、用String类
Tips:需要用到String类中的方法:replace(oldStr,newStr)
package day13;
public class StringTool {
String [] str1 = {"暴力","色情","枪","恐怖","锤"};
/**
*
* @param str
* @return
*/
public String allergicWords(String str) {
for (int i = 0; i < str1.length; i++) {//循环遍历敏感词汇
if (str.contains(str1[i])) {//判断字符串中是否包含敏感词汇
String newStr = "";
//该循环是为打印和敏感词汇相同字符的*
for (int j = 0; j < str1[i].length(); j++) {
newStr += "*";
}
str = str.replace(str1[i], newStr);//调用replace
}
}
return str;
}
}
二、用StringBuffer类
Tips:需要用到StringBuffer类中的方法:replace(int start,int end,Str)
package day13;
public class StringTool {
String [] str1 = {"暴力","色情","枪","恐怖","锤"};
/**
*
* @param str
* @return
*/
public String allergicWords(String str){
StringBuffer stringBuffer = new StringBuffer(str);
for (int i = 0; i < str1.length; i++) {
while(stringBuffer.toString().contains(str1[i])){
int index = stringBuffer.indexOf(str1[i]);//统计要替换词汇的下标
if (index == -1) {
break;
}
StringBuffer stringBuffer2 = new StringBuffer();
for (int j = 0; j < str1[i].length(); j++) {
stringBuffer2.append('*');
}
stringBuffer.replace(index, str1[i].length() + index, stringBuffer2.toString());
}
}
return stringBuffer.toString();
}
}