Как заменить слово в строке? - PullRequest
       0

Как заменить слово в строке?

8 голосов
/ 28 сентября 2011

Я использую String как:

String message = "%%NAME is inviting you";

Я использую message.replaceAll("%%NAME", me);, где me - это String.Эта строка кода не работает для меня.Мне было интересно, что я делаю не так?

Ответы [ 5 ]

16 голосов
/ 28 сентября 2011

Код выглядит более или менее нормально, хотя могут быть некоторые проблемы с синтаксисом.Вот рабочий пример:

String message = "%%NAME is inviting you.";
String name = "Diana";
String result = message.replaceAll("%%NAME", name);
7 голосов
/ 28 сентября 2011

Я бы предложил использовать format метод вместо replaceAll в этом случае.

ОБНОВЛЕНИЕ - Пример

String template = "%s is inviting you";
String name = "Bob";
String result = String.format(template, name);
4 голосов
/ 28 сентября 2011
String message = "%%name is inviting you";
String uname = "Keyser Sose";
message.replaceAll("%%name", uname);

... не будет изменять 'message', потому что строки (в java) неизменны

String message = "%%name is inviting you";
String uname = "Keyser Sose";
message = message.replaceAll("%%name", uname);

.. БУДЕТ работать. (Обратите внимание на переназначение «сообщения»)

2 голосов
/ 01 июля 2012

Rythm - движок Java-шаблонов, выпущенный с новой функцией Режим интерполяции строк , которая позволяет вам делать что-то вроде:

String result = Rythm.render("@name is inviting you", "Diana");

В приведенном выше примере показано, что вы можете передавать аргумент в шаблон по позиции. Ритм также позволяет передавать аргументы по имени:

Map<String, Object> args = new HashMap<String, Object>();
args.put("title", "Mr.");
args.put("name", "John");
String result = Rythm.render("Hello @title @name", args);

Обратите внимание, что Rythm ОЧЕНЬ БЫСТРО, примерно в 2–3 раза быстрее, чем String.format и speed, поскольку он компилирует шаблон в байт-код Java, производительность во время выполнения очень близка к конкатенации со StringBuilder.

Ссылки:

0 голосов
/ 01 мая 2017

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

String info = "[$ FIRSTNAME $] [$ LASTNAME $] [$ EMAIL $] _ [$ ADDRESS $]";

String replaceString = StringUtil.replace (info, new String [] {"[$ FIRSTNAME $]", "[$ LASTNAME $]", "[$ EMAIL $]", "[$ ADDRESS $]"}, новая строка [] {"XYZ", "ABC", "abc@abc.com", "ABCD"});

Это заменит строковое значение информации на новое предоставленное значение ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...