[英]Parse text with dynamic variables in java
我需要解析文本,並將varibales放入其中。 像這樣的東西:
lorem ${var} dolor sit amet consectetur adipiscing elit
結尾把String var = "ipsum"
放在${var}
最簡單的方法是什么? 我將使用正則表達式和匹配器。 但可能是春天(或其他東西)已經有這個功能?
Java標准類MessageFormat與您想要的相對接近,但它不處理任意占位符名稱。 如果需要,你最好的選擇是正則表達式。 如果你認為它們不快,我建議你先測量它們,然后再拒絕它們。 這是一個大綱:
final Map<String, String> vars = new HashMap<String, String>();
vars.put("var", "ipsum");
final String s = "lorem ${var} dolor sit amet consectetur adipiscing elit";
final Matcher m = Pattern.compile("\\$\\{(.*?)\\}").matcher(s);
final StringBuffer b = new StringBuffer(s.length());
while (m.find()) m.appendReplacement(b, vars.get(m.group(1)));
m.appendTail(b);
System.out.println(b);
String
有一個內置的正則表達式包裝器: String replaceAll(String regex, String replacement)
嘗試:
String result = "lorem ${var} dolor sit amet consectetur adipiscing elit".replaceAll("\\$\\{var\\}", "ipsum");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.