Для инструкций, которые вы дали нам, этого будет достаточно:
String [] result = string.split("[\\s-]");
for (int i=0; i<result.length; i++){
result[i] = "" + result[i].charAt(0) + ((result[i].length())-2) + result[i].charAt(result[i].length()-1);
}
С вашим вводом он создает массив [ "e6t", "r3s", "a1e", "r4y", "f2!" ]
И он работает даже с одним или двумя размерамислова, но это дает результат, такой как:
Ввод: I am a small
;Вывод: [ "I-1I", "a0m", "a-1a", "s3l" ]
Опять же, для инструкций, которые вы дали нам, это было бы законно.
Надеюсь, я помог!