用户输入了重复的关键字发现程序处理有问题,存在问题
1:改变了原文字母大小写(最初解决方案是正则 repalceall)
2:关键字重复(包括 重复及含有)
3:对关键字的有效性处理(如全角","问题,空数据问题)
改进
1:不改变原文的字母大小写 2:关键字重复(包括 重复及含有) 3:对关键字的有效性处理(如全角","问题,空数据问题)
程序实际运行效果:
2020-03-17修正关键字之间有子集的情况和关键字首尾拼接情况:
修正算法:
应用截图:
以下为单词方式:
package reyo.sdk.utils.test.algorithms;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 创 建 人:AdministratorReyoAut
* 创建时间:2020年3月28日 上午11:45:01
*
* @author ReYo
* @version 1.0
*/
public class reyo {
/**
* @param args
*/
public static void main(String[] args) {
String source = "aa reyo Reyo bb rEYO";
String patternstring = "reyo";
System.out.println(IgnoreCaseReplace(source, patternstring));
}
/**
* java实现不区分大小写高亮替换
* @param source
* @param patternstring
* @return
*/
public static String IgnoreCaseReplace(String source, String patternstring) {
Pattern p = Pattern.compile(patternstring, Pattern.CASE_INSENSITIVE);
Matcher mc = p.matcher(source);
StringBuffer sb = new StringBuffer();
while (mc.find()) {
mc.appendReplacement(sb, "" + mc.group() + "");
}
mc.appendTail(sb);
return sb.toString();
}
}