テキストを解析し、変数を挿入する必要があります。そんな感じ:
lorem ${var} dolor sit amet consectetur adipiscing elit
終わりにString var = "ipsum"
する${var}
それを行う最も簡単な方法は何ですか?正規表現とマッチャーを使用します。しかし、春(または他の何か)にはすでにこの機能がありますか?
テキストを解析し、変数を挿入する必要があります。そんな感じ:
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");