Замена слова на знак пунктуации
Нужен алгоритм, который в тексте заменит все слова, которые подходят под описание знака пункутации. Но если поставлена точка, то следующее предложение следует начать с большой буквы.
Например:
Стихотворный текст кома в отличие от простого текста точка
Стихотворный текст, в отличие от простого текста.
(учитывать пробелы)
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тихотворный текст.