1 ▁- ▁j ], ▁char Table [ h ay stack [ i ]] ); ▁▁▁▁▁▁▁▁ ▁} ▁▁▁▁▁▁▁▁ ▁return ▁- 1 ; ▁▁▁▁ ▁} ▁▁▁▁▁ ▁/** ▁▁▁▁▁ ▁* ▁M akes ▁the ▁jump ▁table ▁based ▁on ▁the ▁mismatch ed ▁character ▁information . ▁▁▁▁▁ ▁*/ ▁▁▁▁ ▁private ▁static ▁int [] ▁make Char Table ( char [] ▁need le ) ▁{ ▁▁▁▁▁▁▁▁ ▁final ▁int ▁A LP H AB ET _ SIZE ▁= ▁Character . MAX _ VALUE ▁+ ▁ 1 ; ▁// ▁ 6 5 5 3 6 ▁▁▁▁▁▁▁▁ ▁int [] ▁table ▁= ▁new ▁int [ AL PH AB ET _ SIZE ]; ▁▁▁▁▁▁▁▁ ▁for ▁( int ▁i ▁= ▁ 0 ; ▁i ▁< ▁table . length ; ▁++ i ) ▁{ ▁▁▁▁▁▁▁▁▁▁▁▁ ▁table [ i ] ▁= ▁need le . length ; ▁▁▁▁▁▁▁▁ ▁} ▁▁▁▁▁▁▁▁ ▁for ▁( int ▁i ▁= ▁ 0 ; ▁i ▁< ▁need le . length ▁- ▁ 2 ; ▁++ i ) ▁{ ▁▁▁▁▁▁▁▁▁▁▁▁ ▁table [ need le [ i ]] ▁= ▁need le . length ▁- ▁ 1 ▁- ▁i ; ▁▁▁▁▁▁▁▁ ▁} ▁▁▁▁▁▁▁▁ ▁return ▁table ; ▁▁▁▁ ▁} ▁▁▁▁▁ ▁/** ▁▁▁▁▁ ▁* ▁M akes ▁the ▁jump ▁table ▁based ▁on ▁the ▁scan ▁offset ▁which ▁mismatch ▁occurs . ▁▁▁▁▁ ▁* ▁( bad ▁character ▁rule ). ▁▁▁▁▁ ▁*/ ▁▁▁▁ ▁private ▁static ▁int [] ▁make Offset Table ( char [] ▁need le ) ▁{ ▁▁▁▁▁▁▁▁ ▁int [] ▁table ▁= ▁new ▁int [ need le . length ]; ▁▁▁▁▁▁▁▁ ▁int ▁last Prefix Position ▁= ▁need le . length ; ▁▁▁▁▁▁▁▁ ▁for ▁( int ▁i ▁=