ArrayIndexOutOfBounds viene creata quando provi ad accedere a un array in una posizione che non esiste
for (int a=ch.length-1; a>=pari; a--)
stavi leggendo l'array in pos 8 quando la lunghezza è 8 ma un array parte da 0 e arriva a 7