`/**
*
* @param str1 文本
* @param dirty 铭感词汇数组
* @param conversion 转换字符
* @return
*/
public static String hiddenString1(final String str1, final String[] dirty, final char conversion) {
if (str1 != null && dirty != null) {
//把想要查验的文本转换成字符数组
final char[] charStr1 = str1.toCharArray();
for (int i = 0; i < charStr1.length; i++) {
for (int j = 0; j < dirty.length; j++) {
//根据这个敏感词汇找到它所在文本数据charStr1的开始下标
final int startIndex = str1.indexOf(dirty[j]);
//判断如果没有检查到 则跳过
if (startIndex > -1) {
//敏感词汇所在文本的开始下标+敏感词汇的长度 就是结束下标
final int i1 = startIndex + dirty[j].length();
//需要处理开始下标+敏感词汇长度 大于文本数据长度问题 如果大于 结束下标默认为文本最后一个字符的下标
final int endIndex = i1 <= str1.length() ? i1 : str1.length();
//判断从文本截取的字符串是否和敏感词汇一致,如果一致则按照敏感词汇的长度转换成conversion 例如'*'
final String substring = str1.substring(startIndex, endIndex);
if (dirty[j].equals(substring)) {
for (int y = startIndex; y < endIndex; y++) {
charStr1[y] =conversion;
}
}
}
}
}
return new String(charStr1);
}
return null;
}`
2020-9-14检测字符串中的敏感词汇
最新推荐文章于 2023-07-16 20:22:28 发布