Самое простое решение этой проблемы, как правило, состоит в том, чтобы сначала заменить все вхождения строки "..." каким-либо специальным символом, которого нет в тексте, например, управляющим символом ascii.
Послевместо этого замените все множественные вхождения ваших символов конца предложения одиночными.
Затем найдите конец предложений с вашими символами конца предложения + специальный символ, который вы использовали для замены "... "(если вы хотите, чтобы" ... "означало конец предложения)
Наконец, снова замените специальный символ на" ... ".
Я не программист javaпоэтому я не могу дать вам конкретный код Java, чтобы сделать это, но самый простой способ для такого типа проблем, как правило, состоит в том, чтобы несколько операторов split / join не заменял.
так что-то вроде:
str.split("...").join("<special char>")