#android #string #replace
#Android #строка #заменить
Вопрос:
Как заменить текст без замены символа между словами,
String test = "This is the test String for replace is best";
txtReplaceText.setText(test.replace("is"," "));
Вот результат, который я не хочу удалять «Это«
Комментарии:
1. Сколько у вас случаев «is»? Этот формат этого примера всегда одинаков? Всегда ли слово «is» находится на второй позиции?
2. На самом деле строка не исправлена, а также замена слова не исправлена
3. Вы могли бы разделить строку, удалить «is», а затем соединить ее снова. Или вы могли бы выполнить поиск по «is». Но, поскольку ваше единственное слово «is» может быть окружено другими символами, кроме пробелов (точки, восклицательные знаки, табуляции …) … вы можете захотеть использовать регулярное выражение.
4. я пытаюсь это «есть», но не работает, строка bcoz не соответствует
5. Вы присвоили это переменной? Глядя на документацию ,
String.replace
похоже, что она не заменяет ее встроенной. Он заменяет, а затем возвращает преобразованную строку. ИтакString str = test.replace(" is ", " "); txtReplaceText.setText(str)
.
Ответ №1:
Вы можете использовать regex
:
String test = "This is the test String for replace is best";
String regex = "(?<=^| )is(?= |$)";
String output = test.replaceAll(regex, " yourNewString ");
System.out.println(output);
(?<=^| )
соответствует началу строки или пробелу(?= |$)
соответствует концу строки или пробелу
Вы можете добавить больше символов в регулярное выражение, чтобы соответствовать вашим потребностям, например, "(?<=^| )is(?= |\!|\?|,|.|$)"
чтобы соответствовать концу предложения.
Он должен вернуть:
"This yourNewString the test String for replace yourNewString best"
Лучшие