// // This software is now distributed according to // the Lesser Gnu Public License. Please see // http://www.gnu.org/copyleft/lesser.txt for // the details. // -- Happy Computing! // package com.stevesoft.pat; /** This is the same as Skip, except it needs a minimum of two characters in the initializing String. @see com.stevesoft.pat.Skip @see com.stevesoft.pat.SkipBMH */ public class Skip2 extends Skip { int c1,mask1; public Skip2(String s,boolean ign,int offset) { super(s,ign,offset); c1 = s.charAt(1); m1 = 2==s.length(); if(ign) { mask1=mkmask(c1); } else mask1 = 0; } public int find(StringLike s,int start,int end) { if(start > end) return -1; start += offset; int vend = min(s.length()-2,end+offset); for(int i=start;i<=vend;i++) if(0 == (s.charAt(i)&mask) && 0 == (s.charAt(i+1)&mask1)) { //if(m1||s.regionMatches(ign,i,src,0,src.length()) ) if(m1||CaseMgr.regionMatches(s,ign,i,src,0,src.length()) ) return i-offset; } return -1; } }