Учитывая строку с ключами замены, как я могу наиболее эффективно заменить эти ключи значениями времени выполнения, используя Java ? Мне нужно делать это часто, быстро и на достаточно длинных строках (скажем, в среднем, 1-2 КБ). Форма ключей - мой выбор, так как здесь я также предоставляю шаблоны.
Вот пример (пожалуйста, не зацикливайтесь на том, что это XML; я хочу сделать это, если возможно, дешевле, чем с помощью операций XSL или DOM). Я хотел бы заменить все @[^@]*?@
шаблоны в этом на значения свойств из свойств бина, истинных Property
свойств и некоторых других источников. Ключ здесь fast . Есть идеи?
<?xml version="1.0" encoding="utf-8"?>
<envelope version="2.3">
<delivery_instructions>
<delivery_channel>
<channel_type>@CHANNEL_TYPE@</channel_type>
</delivery_channel>
<delivery_envelope>
<chan_delivery_envelope>
<queue_name>@ADDRESS@</queue_name>
</chan_delivery_envelope>
</delivery_envelope>
</delivery_instructions>
<composition_instructions>
<mime_part content_type="application/xml">
<content><external_uri>@URI@</external_uri></content>
</mime_part>
</composition_instructions>
</envelope>
Наивной реализацией является использование String.replaceAll()
, но я не могу не думать, что это не идеально. Если мне удастся избежать добавления новых сторонних зависимостей, тем лучше.