美文网首页
SundayOptUtils

SundayOptUtils

作者: kevinfuture | 来源:发表于2021-02-24 17:39 被阅读0次
    /**
         * @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);
        }
    

    相关文章

      网友评论

          本文标题:SundayOptUtils

          本文链接:https://www.haomeiwen.com/subject/kzgsfltx.html