java高亮显示关键字不区分大小写(但不改变原文字母的大小写)---关键字分词功能(自写算法:关键字之间有子集的情况和关键字首尾拼接)
用户输入了重复的关键字发现程序处理有问题,存在问题
1:改变了原文字母大小写(最初解决方案是正则 repalceall)
2:关键字重复(包括 重复及含有)
3:对关键字的有效性处理(如全角","问题,空数据问题)
改进
1:不改变原文的字母大小写 2:关键字重复(包括 重复及含有) 3:对关键字的有效性处理(如全角","问题,空数据问题)
程序实际运行效果:
2020-03-17修正关键字之间有子集的情况和关键字首尾拼接情况:
修正算法:
应用截图:
以下为单词方式:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | 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(); } } |
2025-02-02 更新支持全拼、简拼及关键字拼接处理和加强空格的处理
运用效果(加入了关键字位置排序):
标签:
关键字去重复
, java高亮显示关键字
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)