簡體   English   中英

使用java中的動態變量解析文本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM