Benvenuto.
Il problema grosso che hai è che non hai letto il regolamento del forum... il codice va postato con gli appositi tag [*CODE] per mantenere un'indentazione ed una leggibilità decenti.
Veniamo al dunque. Questo è quanto hai prodotto fin'ora:
codice:
public static String [][] es(String[]a, char[]c){
int i,j;
String [][] b = new String[a.length][];
for(i = 0; i < a.length; i++){
String []f= new String[a[i].length()];
for(j = 0; j < a[i].length(); j++){
if(a[i].charAt(j) == c[i]){
f[i] = a[i].substring(j-1,j);
b[i][j] = f[i]+b[i][j];
}
}
}
return b;
}
Il tuo compito per casa diceva di produrre un array monodimensionale, e già non ci siamo (il tuo metodo ritorna String[][])
Poi, nella tua richiesta: che cosa vuol dire prendere un carattere e metterlo dentro ad un'altra stringa? Non devi fare niente di tutto ciò. Sei partito bene ciclando su l'array di String, ma ti perdi in tutto il resto andando fuori da quanto ti è stato assegnato, che fondamentalmente è concatenare un po' di caratteri man mano che vengono trovati.