2017-03-28 17 views
0

私の現在のプロジェクトでは、単語を段落の値で置き換えるという要件があります。javaの特別な単語を置き換える最も良い方法

例:

"イベント名である{[イベント] [名]} 連絡先名である{[連絡先] [名]}" 上記の行で

、「{ [イベント]。[名前]} 'は、イベント名で置き換えてください。最初の部分はオブジェクト(イベント)です。さまざまなオブジェクトがあります。 2番目の部分(name)はオブジェクトのプロパティです。

私はオブジェクトと関連するプロパティ値を持っています。

誰かがこれを行う最善の方法を教えてもらえますか?

regex、forループなどを使用する必要がありますか?

+0

おそらく、オブジェクト/プロパティ名を抽出するためにregexを使用し、反射を使用して一致する値を見つける必要があります。 – AndreFeijo

+0

文字列補間?? –

+0

パーサを作成します。または、中括弧に1つの正規表現を使用し、中括弧の中に四角い中カッコを、もう片方にforループを使用する別の正規表現を使用します。しかし、それはすぐにあなたの文法を拡張すると乱雑になる –

答えて

1

これは何か?あなたはそれよりも複雑な何かが必要な場合は

String.format("Event name is %s. Contact name is ‰s", event.getName(), contact.getName()) ; 

は、ベロシティやFreeMarkerのテンプレート

0

単純な文字列を使用しますが.を交換したりしませたかった場合

str = str.replace ("{[Event].", value1).replace ("[Name]}", value2); 

わからないreplace(または2)

0

何かこれを置き換えるためには必要ですが、正規表現を定義する方が良い方法があります

String str = "Event name is {[Event].[Name]}"; 

String eventStr = "event"; 

String nameStr = "name"; 

str = str.replaceAll(Pattern.quote("{[Event].[Name]}"), String.format("%s.%s", eventStr, nameStr)); 
関連する問題