用戶輸入了重復的關鍵字發現程序處理有問題,存在問題
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;
/**
* <B>創 建 人:</B>AdministratorReyoAut <BR>
* <B>創建時間:</B>2020年3月28日 上午11:45:01<BR>
*
* @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, "<font color='red' >" + mc.group() + "</font>");
}
mc.appendTail(sb);
return sb.toString();
}
}

