1

テキストを解析し、変数を挿入する必要があります。そんな感じ:

lorem ${var} dolor sit amet consectetur adipiscing elit

終わりにString var = "ipsum"する${var}

それを行う最も簡単な方法は何ですか?正規表現とマッチャーを使用します。しかし、春(または他の何か)にはすでにこの機能がありますか?

4

2 に答える 2

3

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);
于 2012-07-01T16:35:17.457 に答える
0

String正規表現の組み込みラッパーがあります。String replaceAll(String regex, String replacement)

試す:

 String result = "lorem ${var} dolor sit amet consectetur adipiscing elit".replaceAll("\\$\\{var\\}", "ipsum");
于 2012-07-01T16:01:26.000 に答える