zoukankan      html  css  js  c++  java
  • java高亮显示关键字不区分大小写(但不改变原文字母的大小写)---关键字分词功能(自写算法:关键字之间有子集的情况和关键字首尾拼接)

    用户输入了重复的关键字发现程序处理有问题,存在问题

    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();
        }
    
    }
    

     

  • 相关阅读:
    【NOIP16提高组】换教室
    【扬中集训Day6T1】 白日梦
    【POJ 1061】 青蛙的约会
    【扬中集训DAY5T1】 交换矩阵
    【USACO】 Balanced Photo
    【USACO】 Balanced Lineup

    POJ P3352 Road Construction 解题报告
    洛谷 P2783 有机化学之神偶尔会做作弊 解题报告
    洛谷 P2300 合并神犇 解题报告
  • 原文地址:https://www.cnblogs.com/interdrp/p/12365787.html
Copyright © 2011-2022 走看看