Замена слова на знак пунктуации

Нужен алгоритм, который в тексте заменит все слова, которые подходят под описание знака пункутации. Но если поставлена точка, то следующее предложение следует начать с большой буквы.

Например:

Стихотворный текст кома в отличие от простого текста точка
Стихотворный текст, в отличие от простого текста.

(учитывать пробелы)

String text = "Стихотворный текст кома в отличие от простого текста точка";

text=text.repalceAll(" кома",",").replaceAll("точка", ".");

Ответы (1 шт):

Автор решения: Tiarait

Можно написать функцию, которая будет производить след. букву после слова точка в верхний регистр

String s = "Стихотворный текст кома в отличие от простого текста точка стихотворный текст точка ";
System.out.println(replaceDot(s).replace(" кома ", ", ").trim());
...
public static String replaceDot(String s) {
    String[] array = s.split(" точка");
    String result = "";
    for(String r : array) {
      if(!r.trim().isEmpty()) {
        String s1 = r.trim().substring(0, 1).toUpperCase();
        result += s1 + r.trim().substring(1) + ". ";
      }
    }
    return result;
}

А можно вместо функции воспользоваться регуляркой (java.util.regex.Pattern), опять же что бы след. букву после слова точка произвести в верхний регистр

String text = "Стихотворный текст кома в отличие от простого текста точка cтихотворный текст точка ";
String regex = "(?<=\\sточка) ?\\S";
text = Pattern.compile(regex)
    .matcher(text)
    .replaceAll(matche -> matche.group().toUpperCase());
System.out.println(text.replace(" кома ", ", ").replace(" точка ", ". ").trim());

И там, и там получим

Стихотворный текст, в отличие от простого текста. Cтихотворный текст.
→ Ссылка