Не все слово в тексте заменились используя метода класса String
Мне удалось заменить слово Hello на звезды: *, но не все заменилось.
Вот Код:
String text = "Hello Java Programmers Hello Bad Hello World Hello Hello";
String word = "Hello";
int wordPos = text.indexOf(word);
if (wordPos > -1) {
String star = "*".repeat((word.length()));
int allStar = wordPos + word.length();
text = text.substring(0, wordPos) + star + text.substring(allStar);
}
}
System.out.println(text);
Результат:
***** Java Programmers Hello Bad Hello World Hello Hello
Если кто-то знает, как решить эту проблему - спасибо заранее!))
Ответы (2 шт):
Автор решения: стасевич
→ Ссылка
Метод replaceAll() — заменяет каждую подстроку данной строки, которая соответствует заданному регулярному выражению, с данной заменой, другими словами — метод позволяет заменить слово в строке.
String text = "Hello Java Programmers Hello Bad Hello World Hello Hello";
// что меняем | на что меняем
String result = text.replaceAll("Hello","****");
System.out.println(result);
// вывод - **** Java Programmers **** Bad **** World **** ****
Автор решения: flawe
→ Ссылка
При помощи метода replace, Вы можете заменить слово в строке на необходимую вам строку/символ. Под Ваше ТЗ я подготовил код ниже
public String replaceWord(String s, String word, char symbol) {
return s.replace(word, String.valueOf(symbol).repeat(word.length()));
}
Использование:
text = replaceWord(text, "Hello", '*');
//TODO