Ну, вы можете использовать регулярное выражение , чтобы найти случаи, когда за "Миланом" не следует "Васич":
Milan(?! Vasic)
и замените его на полное имя:
String.replaceAll("Milan(?! Vasic)", "Milan Vasic")
Часть (?!...)
является отрицательным прогнозом , который гарантирует, что при любых совпадениях не будет следовать части в скобках. Он не потребляет никаких символов в самом матче.
В качестве альтернативы, вы можете просто вставить (ну, технически заменив совпадение с нулевой шириной) фамилию после имени, если за ней уже не следует фамилия. Это выглядит аналогично, но также использует позитивный взгляд за :
(?<=Milan)(?! Vasic)
Вы можете заменить это просто " Vasic"
(обратите внимание на пробел в начале строки):
String.replaceAll("(?<=Milan)(?! Vasic)", " Vasic")
Вы можете попробовать эти вещи здесь например.