SundayOptUtils

/**
     * @param pattern 模式串:要匹配的短语
     * @param input 被匹配的短语输入
     * **/
    private static boolean indexOf(String pattern, String input){
        try{
            int n = pattern.length();
            int m = input.length();
            if(m <= 0 || n <= 0){
                return false;
            }
            if(m < n){
                return false;
            }
            //初始化位置为0
            int i  = 0;
            int j  = 0;
            //当pattern的索引遍历完全时,表示已经匹配到了字符
            while (i < m && j < n){
                System.out.println(input.charAt(i) + " === " +  pattern.charAt(j));
                if(input.charAt(i) != pattern.charAt(j)){
                    int x = 0;

                    //获取是否在模式串中存在当前匹配串对应的该字符
                    for(; x < n; ++x){
                        if(input.charAt(i) == pattern.charAt(x)){
                            break;
                        }
                    }
                    x = n - x;
                    //如果是没有匹配的字符,则直接跳过当前之前的所有字符;否则则将索引置为存在的模式串对应匹配串的所在第一个字符
                    if(x != 0){
                        i = i - x + 1;
                    }else {
                        i = i + n;
                    }
                    j = 0;
                }else{
                    ++i;
                    ++j;
                }
            }


            return true;
        }catch (Exception e){
            e.printStackTrace();
        }
        return false;
    }

    public static void main(String[] args) {
        boolean matchs = indexOf("海贼王", "我是要成为海贼王的男人还好大");
        System.out.println(matchs);
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    迷月闪星情阅读 10,605评论 0 11
  • 彩排完,天已黑
    刘凯书法阅读 4,273评论 1 3
  • 没事就多看看书,因为腹有诗书气自华,读书万卷始通神。没事就多出去旅游,别因为没钱而找借口,因为只要你省吃俭用,来...
    向阳之心阅读 4,811评论 3 11
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 125,859评论 2 7