private static int [ ] makeCharTable ( byte [ ] needle ) { int [ ] table = new int [ ALPHABET_SIZE ] ; int l = needle . length ; for ( int i = 0 ; i < ALPHABET_SIZE ; ++ i ) { table [ i ] = l ; } l -- ; for ( int i = 0 ; i < l ; ++ i ) { table [ needle [ i ] & 0xff ] = l - i ; } return table ; }
Makes the jump table based on the mismatched character information .