Библиотека Java, которая допускает замену - PullRequest
4 голосов
/ 04 марта 2010

Кто-нибудь знает библиотеку Java, которая обеспечивает поддержку замены стиля $ {var} в текстовых файлах?

Ответы [ 4 ]

7 голосов
/ 04 марта 2010
5 голосов
/ 24 апреля 2014

Использование org.apache.commons.lang3.text.StrSubstitutor

Пример 1 (самый простой пример - использовать этот класс для замены свойств системы Java):

  StrSubstitutor.replaceSystemProperties(
    "You are running with java.version = ${java.version} and os.name = ${os.name}.");

Пример 2:

   Map valuesMap = HashMap();
   valuesMap.put("animal", "quick brown fox");
   valuesMap.put("target", "lazy dog");
   String templateString = "The ${animal} jumped over the ${target}.";
   StrSubstitutor sub = new StrSubstitutor(valuesMap);
   String resolvedString = sub.replace(templateString);

получают:

   The quick brown fox jumped over the lazy dog.
3 голосов
/ 04 марта 2010

Java MessageFormat класс допускает полусложное замещение текста с поддержкой локализации и форматирования чисел, дат и времени. А для плюрализации вы можете даже использовать java.text.ChoiceFormat с MessageFormat. Это может быть достаточно для всех ваших потребностей замещения текста.

Если нет, вы можете взглянуть на Apache Velocity (http://velocity.apache.org/) или Freemarker (http://freemarker.sourceforge.net/)

)
2 голосов
/ 04 марта 2010

Не пропустите StringTemplate это, вероятно, самое чистое разделение проблем данных и шаблонов, и оно очень надежное.

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