استبدال المتغيرات في النص: اقتراحات؟
-
18-09-2019 - |
سؤال
أبحث عن محرك قالب لطيف أو قطعة قصيرة من التعليمات البرمجية لتوسيع المتغيرات التي يشبه النمل في سلسلة في جافا. مثال:
String result = expand ("${firstName} ${familyName}", map);
يجب أن يدعم على الأقل java.util.Map
ولكن شيء يمكنه التعامل مع الفاصوليا أو البحث أو البحث العسكري في قائمة الخرائط / الكائنات سيكون موضع ترحيب، أيضا.
اقتراحات؟
عدل] بالرد على Tofubeer: لا يوجد تعشيش، معرفات Java صالحة فقط داخل {}
. وبعد أي شيء خارج ${}
يجب نسخ حرفي. $$
ينبغي أن تصبح $``. If that's not possible ${dollar}
يجب أن توسع إلى واحد $
(حتى تتمكن من التعبير 15.00 $
).
المحلول
strsubstitutor. من المشاع Lang. لا شيء ما تسأل عنه
نصائح أخرى
استعمال stringtemplate. من أجل التنفيذ expand
:
void expand(String template, Map<String,String> map) {
StringTemplate st = new StringTemplate(template);
for (Map.Entry<String, String> attribute : map) {
st.setAttribute(attribute.getKey(), attribute.getValue());
}
return st.toString();
}
إلقاء نظرة على سرعة Freemarker Och، وكلاهما محركات القالب
لا تنتمي إلى StackOverflow